Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tests/org.eclipse.wst.wsdl.tests.performance/data/1000WSDLsCrossDepends/sample819.wsdl')
-rw-r--r--tests/org.eclipse.wst.wsdl.tests.performance/data/1000WSDLsCrossDepends/sample819.wsdl39
1 files changed, 0 insertions, 39 deletions
diff --git a/tests/org.eclipse.wst.wsdl.tests.performance/data/1000WSDLsCrossDepends/sample819.wsdl b/tests/org.eclipse.wst.wsdl.tests.performance/data/1000WSDLsCrossDepends/sample819.wsdl
deleted file mode 100644
index d4f3610e4..000000000
--- a/tests/org.eclipse.wst.wsdl.tests.performance/data/1000WSDLsCrossDepends/sample819.wsdl
+++ /dev/null
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<wsdl:definitions name="sample" targetNamespace="http://www.example.org/sample819" xmlns:tns="http://www.example.org/sample819" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
-<wsdl:import namespace="http://www.example.org/sample295" location="sample295.wsdl"/>
-<wsdl:import namespace="http://www.example.org/sample854" location="./sample854.wsdl"/>
-<wsdl:import namespace="http://www.example.org/sample829" location=".\sample829.wsdl"/>
-<wsdl:types>
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/sample819">
-<xsd:element name="NewOperationResponse" type="xsd:string"/><xsd:element name="NewOperationRequest" type="xsd:string"/></xsd:schema>
-</wsdl:types>
-<wsdl:message name="NewOperationResponse">
-<wsdl:part name="NewOperationResponse" element="tns:NewOperationResponse"/>
-</wsdl:message>
-<wsdl:message name="NewOperationRequest">
-<wsdl:part name="NewOperationRequest" element="tns:NewOperationRequest"/>
-</wsdl:message>
-<wsdl:portType name="sample">
-<wsdl:operation name="NewOperation">
-<wsdl:input message="tns:NewOperationRequest"/>
-<wsdl:output message="tns:NewOperationResponse"/>
-</wsdl:operation>
-</wsdl:portType>
-<wsdl:binding name="sampleSOAP" type="tns:sample">
-<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
-<wsdl:operation name="NewOperation">
-<soap:operation soapAction="http://www.example.org/sample/NewOperation"/>
-<wsdl:input>
-<soap:body use="literal" parts=" NewOperationRequest"/>
-</wsdl:input>
-<wsdl:output>
-<soap:body use="literal" parts=" NewOperationResponse"/>
-</wsdl:output>
-</wsdl:operation>
-</wsdl:binding>
-<wsdl:service name="sample">
-<wsdl:port name="sampleSOAP" binding="tns:sampleSOAP">
-<soap:address location="http://www.example.org/"/>
-</wsdl:port>
-</wsdl:service>
-</wsdl:definitions> \ No newline at end of file

Back to the top

>I20120407-0329I20120407-0305I20120407-0217I20120407-0205I20120407-0138I20120407-0103I20120407-0040I20120407-0024I20120406-2327I20120406-0935I20120406-0915I20120406-0250I20120406-0231I20120406-0006I20120405-2131I20120405-1735I20120405-1114
Diffstat
-rw-r--r--ant/org.eclipse.ant.core/.classpath8
-rw-r--r--ant/org.eclipse.ant.core/.externalToolBuilders/Build Ant Support JAR.launch17
-rw-r--r--ant/org.eclipse.ant.core/.project43
-rw-r--r--ant/org.eclipse.ant.core/.settings/org.eclipse.pde.core.prefs3
-rw-r--r--ant/org.eclipse.ant.core/about.html54
-rw-r--r--ant/org.eclipse.ant.core/about_files/NOTICE15
-rw-r--r--ant/org.eclipse.ant.core/about_files/asl-v20.txt202
-rw-r--r--ant/org.eclipse.ant.core/build.properties25
-rw-r--r--ant/org.eclipse.ant.core/buildfiles/exportplugin.xml37
-rw-r--r--ant/org.eclipse.ant.core/plugin.properties19
-rw-r--r--ant/org.eclipse.ant.core/schema/antProperties.exsd149
-rw-r--r--ant/org.eclipse.ant.core/schema/antTypes.exsd141
-rw-r--r--ant/org.eclipse.ant.core/schema/extraClasspathEntries.exsd113
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntCorePlugin.java308
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntSecurityException.java26
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IAntClasspathEntry.java44
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Task.java39
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Type.java39
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/core/package.html14
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AbstractEclipseBuildLogger.java30
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntClassLoader.java169
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntPropertyValueProvider.java59
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntSecurityManager.java373
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/InternalCoreAntMessages.java35
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/InternalCoreAntMessages.properties24
-rw-r--r--ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/contentDescriber/AntBuildfileContentDescriber.java118
-rw-r--r--ant/org.eclipse.ant.core/src_ant/META-INF/eclipse.inf1
-rw-r--r--ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/DemuxInputStreamSetter.java26
-rw-r--r--ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseAntMain.java50
-rw-r--r--ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseDefaultExecutor.java41
-rw-r--r--ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseMainHelper.java25
-rw-r--r--ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseSingleCheckExecutor.java39
-rw-r--r--ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ExecutorSetter.java26
-rw-r--r--ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/FailInputHandler.java29
-rw-r--r--ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InputHandlerSetter.java45
-rw-r--r--ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject.java178
-rw-r--r--ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject2.java31
-rw-r--r--ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/NullInputHandler.java33
-rw-r--r--ant/org.eclipse.ant.launching/.classpath10
-rw-r--r--ant/org.eclipse.ant.launching/.externalToolBuilders/build common debug [Builder].launch21
-rw-r--r--ant/org.eclipse.ant.launching/.externalToolBuilders/build loggers [Builder].launch22
-rw-r--r--ant/org.eclipse.ant.launching/.externalToolBuilders/build remote support [Builder].launch21
-rw-r--r--ant/org.eclipse.ant.launching/.project64
-rw-r--r--ant/org.eclipse.ant.launching/about.html53
-rw-r--r--ant/org.eclipse.ant.launching/build.properties32
-rw-r--r--ant/org.eclipse.ant.launching/buildfiles/buildCommonDebug.xml39
-rw-r--r--ant/org.eclipse.ant.launching/buildfiles/buildLoggers.xml39
-rw-r--r--ant/org.eclipse.ant.launching/buildfiles/buildRemote.xml39
-rw-r--r--ant/org.eclipse.ant.launching/common/META-INF/eclipse.inf1
-rw-r--r--ant/org.eclipse.ant.launching/common/org/eclipse/ant/internal/launching/debug/IDebugBuildLogger.java21
-rw-r--r--ant/org.eclipse.ant.launching/loggers/META-INF/eclipse.inf1
-rw-r--r--ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/NullBuildLogger.java179
-rw-r--r--ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/RuntimeMessages.java32
-rw-r--r--ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/RuntimeMessages.properties20
-rw-r--r--ant/org.eclipse.ant.launching/plugin.properties24
-rw-r--r--ant/org.eclipse.ant.launching/remote/META-INF/eclipse.inf1
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/AntSecurityException.java23
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/AntSecurityManager.java371
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/DemuxInputStreamSetter.java26
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/EclipseDefaultExecutor.java41
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/EclipseSingleCheckExecutor.java39
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/ExecutorSetter.java26
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/InputHandlerSetter.java44
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/RemoteAntMessages.java33
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/RemoteAntMessages.properties76
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/inputhandler/FailInputHandler.java29
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/logger/MessageIds.java21
-rw-r--r--ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/logger/RemoteAntBreakpoint.java74
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntCoreModelMessages.java25
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntCoreModelMessages.properties14
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunch.java57
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunchingPreferenceInitializer.java37
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/IAntLaunchingPreferenceConstants.java23
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/LinkDescriptor.java73
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntDebugMessages.java23
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntDebugMessages.properties12
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceContainer.java73
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceLookupDirector.java36
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceLookupParticipant.java36
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourcePathComputerDelegate.java33
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/IAntDebugConstants.java33
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntDebugElement.java55
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntLineBreakpoint.java112
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntProperties.java109
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntPropertiesValue.java71
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntProperty.java121
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntStackFrame.java314
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntValue.java71
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugMessageIds.java47
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugModelMessages.java32
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugModelMessages.properties21
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntClasspathProvider.java50
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntHomeClasspathEntry.java210
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntJavaLaunchDelegate.java47
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntLaunchConfigurationMessages.java37
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntLaunchConfigurationMessages.properties26
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntMigrationDelegate.java77
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntStreamMonitor.java83
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntStreamsProxy.java65
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/MessageIds.java21
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntProcessFactory.java34
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntRuntimeProcess.java37
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/launching/IAntLaunchConstants.java126
-rw-r--r--ant/org.eclipse.ant.launching/src/org/eclipse/ant/launching/package.html13
-rw-r--r--ant/org.eclipse.ant.tests.core/.classpath9
-rw-r--r--ant/org.eclipse.ant.tests.core/.externalToolBuilders/Ant Test Support Lib Builder.launch16
-rw-r--r--ant/org.eclipse.ant.tests.core/.project37
-rw-r--r--ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.core.prefs3
-rw-r--r--ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.prefs29
-rw-r--r--ant/org.eclipse.ant.tests.core/about.html28
-rw-r--r--ant/org.eclipse.ant.tests.core/build.properties28
-rw-r--r--ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml55
-rw-r--r--ant/org.eclipse.ant.tests.core/plugin.properties13
-rw-r--r--ant/org.eclipse.ant.tests.core/plugin.xml76
-rw-r--r--ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntFileRunner.java78
-rw-r--r--ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java229
-rw-r--r--ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPlugin.java63
-rw-r--r--ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPropertyValueProvider.java24
-rw-r--r--ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/ProjectHelper.java114
-rw-r--r--ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/inputHandlers/AntTestInputHandler.java36
-rw-r--r--ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask.java35
-rw-r--r--ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.java35
-rw-r--r--ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildListener.java64
-rw-r--r--ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java178
-rw-r--r--ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/types/AntTestPath.java34
-rw-r--r--ant/org.eclipse.ant.tests.core/test.xml54
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/Bug32551.xml15
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/Bug34663.xml8
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/Bug42926.xml12
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/Bug73602.xml13
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/ClasspathOrdering.xml6
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/CustomTask.xml13
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/CustomType.xml16
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointTask.xml16
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointType.xml12
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/NoDefault.xml5
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/TestForEcho.xml11
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/build.xml14
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/echoing.xml14
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/failingTarget.xml9
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/input.xml7
-rw-r--r--ant/org.eclipse.ant.tests.core/testbuildfiles/javac.xml33
-rw-r--r--ant/org.eclipse.ant.tests.core/testlib/classpathOrdering1.jarbin0 -> 663 bytes
-rw-r--r--ant/org.eclipse.ant.tests.core/testlib/classpathOrdering2.jarbin0 -> 664 bytes
-rw-r--r--ant/org.eclipse.ant.tests.core/testlib/taskFolder/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.classbin0 -> 894 bytes
-rw-r--r--ant/org.eclipse.ant.tests.core/testresources/AntTestTask.java34
-rw-r--r--ant/org.eclipse.ant.tests.core/testresources/taskdefs.properties12
-rw-r--r--ant/org.eclipse.ant.tests.core/testresources/test.properties12
-rw-r--r--ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AbstractAntTest.java263
-rw-r--r--ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/ProjectTests.java77
-rw-r--r--ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TaskTests.java151
-rw-r--r--ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TypeTests.java79
-rw-r--r--ant/org.eclipse.ant.tests.ui/.classpath12
-rw-r--r--ant/org.eclipse.ant.tests.ui/.externalToolBuilders/Build Test Support JAR.launch15
-rw-r--r--ant/org.eclipse.ant.tests.ui/.project37
-rw-r--r--ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.core.prefs3
-rw-r--r--ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.prefs29
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/BreakpointTests.java217
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementEventWaiter.java33
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementKindEventDetailWaiter.java32
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/StackTests.java55
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/SteppingTests.java234
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/dtd/dumper.java147
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/TaskDescriptionProviderTest.java65
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/FormattingPreferencesTest.java59
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlDocumentFormatterTest.java84
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlFormatterTest.java71
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java378
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/EditorTestHelper.java148
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/NonInitialTypingTest.java94
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestLocationProvider.java36
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestProblemRequestor.java39
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestTextCompletionProcessor.java224
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildPerformanceTest.java143
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildTest.java100
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java128
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/AbstractAntPerformanceTest.java31
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/OpenLaunchConfigurationDialogTests.java109
-rw-r--r--ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/SeparateVMTests.java105
-rw-r--r--ant/org.eclipse.ant.tests.ui/about.html28
-rw-r--r--ant/org.eclipse.ant.tests.ui/build.properties30
-rw-r--r--ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml49
-rw-r--r--ant/org.eclipse.ant.tests.ui/icons/ant.gifbin0 -> 216 bytes
-rw-r--r--ant/org.eclipse.ant.tests.ui/plugin.properties13
-rw-r--r--ant/org.eclipse.ant.tests.ui/plugin.xml70
-rw-r--r--ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java483
-rw-r--r--ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUIPerformanceTests.java38
-rw-r--r--ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITestPlugin.java63
-rw-r--r--ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ConsoleLineTracker.java117
-rw-r--r--ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugElementKindEventWaiter.java36
-rw-r--r--ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugEventWaiter.java170
-rw-r--r--ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectCreationDecorator.java47
-rw-r--r--ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectHelper.java229
-rw-r--r--ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/inputHandlers/TestSWTInputHandler.java25
-rw-r--r--ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask.java33
-rw-r--r--ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask2.java55
-rw-r--r--ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/NestElementTask.java52
-rw-r--r--ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/types/AntTestPath.java32
-rw-r--r--ant/org.eclipse.ant.tests.ui/test.xml71
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/102282.xml23
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/74840.xml5
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/85769.xml20
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/89115.xml9
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/89901.xml12
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/96022.xml31
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/98853.xml27
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/antUITestsSupport.jarbin0 -> 3224 bytes
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/bad.xml14
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/badproject.xml4
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/breakpoints.xml37
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/build.Cp1251.xml10
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/build.UTF8.xml9
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/build.xml14
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.properties13
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.xml21
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest2.xml5
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest3.xml10
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest4.xml8
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/customBoolean.xml5
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/debugAntCall.xml18
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/dependencytest.xml38
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/echoProperties.xml6
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/echoing.xml19
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/empty.xml0
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/environmentVar.xml5
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointSepVM.xml14
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTaskSepVM.xml6
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTypeSepVM.xml12
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/failingTarget.xml9
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_source01.xml24
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target01.xml31
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target02.xml31
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target03.xml31
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/import.xml20
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/importRequiringUserProp.xml10
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/importWithByteOrderMark.xml18
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/input.xml7
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/internalTargets.xml18
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/javac.xml7
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/macrodef.xml22
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/mixed.xml1
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/nestedElementAttributes.xml8
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/occurrencesTest.xml49
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/outline_select_test_build.xml20
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/performance/build.xml2360
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/projectOnly.xml4
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/refid.xml49
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/russianbuild.xml8
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/taskdef.xml11
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/test1.xml10
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/test2.xml9
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/test3.xml4
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/test4.xml1
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/test5.xml6
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImported.xml12
-rw-r--r--ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImportedWithByteOrderMark.xml18
-rw-r--r--ant/org.eclipse.ant.tests.ui/testresources/Test2.java30
-rw-r--r--ant/org.eclipse.ant.ui/.classpath10
-rw-r--r--ant/org.eclipse.ant.ui/.externalToolBuilders/Build Ant Runner Support JAR.launch17
-rw-r--r--ant/org.eclipse.ant.ui/.externalToolBuilders/Build Remote Ant JAR.launch16
-rw-r--r--ant/org.eclipse.ant.ui/.project53
-rw-r--r--ant/org.eclipse.ant.ui/.settings/org.eclipse.pde.core.prefs3
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor Content Assist Dev/XDOCtasks.xml18688
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor Content Assist Dev/tasks.xml5139
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/AntDTDMessages.java24
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/AntDTDMessages.properties13
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/IAtom.java31
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/IAttribute.java64
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/IDfm.java86
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/IElement.java64
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/IModel.java78
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/ISchema.java33
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/ParseError.java28
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/Parser.java200
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/schema/AntDTDSchemaMessages.java29
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/schema/AntDTDSchemaMessages.properties18
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/schema/Attribute.java114
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/schema/Dfm.java170
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/schema/Element.java179
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/schema/Nfm.java289
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/schema/NfmNode.java113
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/schema/Schema.java67
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/util/AntDTDUtilMessages.java24
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/util/AntDTDUtilMessages.properties13
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/util/Factory.java68
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/util/FactoryObject.java22
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/util/IKeyHolder.java21
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/util/IMapHolder.java18
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/util/IValueHolder.java21
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/util/MapHolder.java48
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/util/SortedMapFactory.java52
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/dtd/util/SortedSet.java260
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntAutoEditStrategy.java315
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntEditorActionContributor.java174
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntEditorMessages.java37
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntEditorMessages.properties43
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntElementHyperlink.java56
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntElementHyperlinkDetector.java41
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/AntSourceViewerInformationControl.java237
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/DecayCodeCompletionDataStructuresThread.java71
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/EditorSynchronizer.java58
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/OccurrencesFinder.java109
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/actions/AntEditorActionMessages.java36
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/actions/AntEditorActionMessages.properties42
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/actions/FoldingActionGroup.java123
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/actions/FoldingExpandAllRulerAction.java31
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/actions/FoldingToggleRulerAction.java66
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/actions/OpenDeclarationAction.java58
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/actions/RenameInFileAction.java123
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/actions/RunToLineAdapter.java104
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/actions/ToggleAutoReconcileAction.java106
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/actions/ToggleMarkOccurrencesAction.java99
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/actions/TogglePresentationAction.java133
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/formatter/XmlDocumentFormattingStrategy.java83
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/formatter/XmlElementFormattingStrategy.java111
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/formatter/XmlTagFormatter.java428
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/outline/AntOutlineMessages.java36
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/outline/AntOutlineMessages.properties25
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/outline/FilterImportedElementsAction.java44
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/outline/FilterInternalTargetsAction.java44
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/outline/FilterPropertiesAction.java44
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/outline/FilterTopLevelAction.java44
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/outline/ToggleLinkWithEditorAction.java46
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/outline/ToggleSortAntOutlineAction.java40
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntTemplateAccess.java82
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntTemplateInformationControlCreator.java55
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntTemplateProposal.java50
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntTemplateVariableTextHover.java63
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntTemplateViewerConfiguration.java26
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/templates/AntVariableResolver.java50
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/templates/BuildFileContextType.java42
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/templates/TargetContextType.java16
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/templates/TaskContextType.java16
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AbstractAntEditorScanner.java76
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AnnotationModelFactory.java31
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntAnnotationModel.java132
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntDocumentSetupParticipant.java53
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntEditorPartitionScanner.java69
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntEditorProcInstrScanner.java71
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntEditorTagScanner.java77
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntEditorTextMessages.java25
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntEditorTextMessages.properties14
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntEditorWhitespaceDetector.java31
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntExternalAnnotationModel.java97
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntInformationProvider.java38
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/AntStorageDocumentProvider.java49
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/DocTypeRule.java50
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/FileScanner.java26
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/IAntEditorColorConstants.java39
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/IReconcilingParticipant.java24
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/MultilineDamagerRepairer.java50
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/NotifyingReconciler.java64
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/TagRule.java94
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/XMLAnnotationHover.java184
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/XMLProblemAnnotation.java41
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/text/XMLReconcilingStrategy.java93
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/utils/ProjectHelperMessages.java23
-rw-r--r--ant/org.eclipse.ant.ui/Ant Editor/org/eclipse/ant/internal/ui/editor/utils/ProjectHelperMessages.properties11
-rw-r--r--ant/org.eclipse.ant.ui/Ant Runner Support/META-INF/eclipse.inf1
-rw-r--r--ant/org.eclipse.ant.ui/Ant Runner Support/org/eclipse/ant/internal/ui/antsupport/AntSupportMessages.java26
-rw-r--r--ant/org.eclipse.ant.ui/Ant Runner Support/org/eclipse/ant/internal/ui/antsupport/AntSupportMessages.properties15
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/AntDoubleClickStrategy.java35
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/AntImageDescriptor.java135
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/AntPropertyValueProvider.java54
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/AntRunnerWorkbenchAdvisor.java62
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/AntSourceViewerConfiguration.java213
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/AntUIImages.java204
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/AntUIModelMessages.java29
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/AntUIModelMessages.properties18
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/ColorManager.java58
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/ExternalHyperlink.java87
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/IAntUIConstants.java123
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/ImageDescriptorRegistry.java91
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/WorkbenchAntRunner.java57
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/AbstractJavacPatternMatcher.java163
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/AntConsoleColorProvider.java116
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/ConsoleMessages.java24
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/EclipseJavacPatternMatcher.java51
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/JavacMarkerCreator.java178
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/JavacPatternMatcher.java67
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/JikesJavacPatternMatcher.java37
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/console/TaskLineTracker.java60
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/AntBuildfileExportWizard.java54
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/AntNewJavaProjectWizard.java58
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/DataTransferMessages.java75
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/ProjectCreator.java206
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/debug/model/DebugModelMessages.java30
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/debug/model/DebugModelMessages.properties17
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AddVariableStringAction.java43
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntClasspathTab.java136
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntEnvironmentTab.java77
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntLaunchConfigurationMessages.java93
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntLaunchConfigurationMessages.properties82
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntLaunchDelegate.java26
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntLaunchShortcutWithDialog.java23
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntPropertiesTab.java260
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntTargetsTab.java845
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/AntWorkingDirectoryBlock.java71
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/EditAntHomeEntryAction.java95
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/IAntLaunchConfigurationConstants.java158
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/RunAntStatusHandler.java33
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/TargetOrderDialog.java253
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/launchConfigurations/VariableInputDialog.java125
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntCommentNode.java37
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntDTDNode.java37
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntElementAdapterFactory.java41
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModelChangeEvent.java40
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModelContentProvider.java85
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModelCore.java115
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModelLabelProvider.java50
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModelMessages.java37
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModelMessages.properties26
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntModelProblem.java148
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntProjectNodeProxy.java271
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/AntTaskNode.java218
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/IAntElement.java18
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/IAntModelListener.java18
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/IProblem.java54
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/IProblemRequestor.java35
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/InternalTargetFilter.java54
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/model/LocationProvider.java43
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AbstractClasspathEntry.java72
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AddPropertyDialog.java175
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntClasspathContentProvider.java211
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntClasspathLabelProvider.java145
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntClasspathPage.java251
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntContentProvider.java138
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntEditorPreferenceConstants.java313
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntPage.java473
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntPreviewerUpdater.java227
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntPropertiesPage.java159
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntRuntimePreferencePage.java167
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntTasksPage.java133
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntTypesPage.java134
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/ClasspathModel.java250
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/ColorEditor.java123
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/FileFilter.java110
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/FormatPreviewCode.txt35
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/GlobalClasspathEntries.java68
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/IAntBlockContainer.java51
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/IClasspathEntry.java38
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/MinimizedFileSystemElement.java216
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/OverlayPreferenceStore.java451
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/StatusInfo.java172
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/SyntaxPreviewCode.txt14
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/TabFolderLayout.java54
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/URLFieldEditor.java100
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/refactoring/LaunchConfigurationBuildfileRenameParticipant.java53
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/refactoring/LaunchConfigurationIProjectRenameParticipant.java54
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/refactoring/RefactoringMessages.java30
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/refactoring/RefactoringMessages.properties19
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/AntViewContentProvider.java76
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/AntViewMessages.java26
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/AntViewMessages.properties15
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/AddBuildFilesAction.java96
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/AntOpenWithMenu.java287
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/AntViewActionMessages.java59
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/AntViewActionMessages.properties48
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/EditorImageDescriptor.java92
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/FilterInternalTargetsAction.java40
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/RefreshBuildFilesAction.java116
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/RemoveAllAction.java47
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/RemoveProjectAction.java77
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/RunTargetAction.java130
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/views/actions/SearchForBuildFilesAction.java95
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/ui/launching/IAntLaunchConfigurationConstants.java146
-rw-r--r--ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/ui/launching/package.html13
-rw-r--r--ant/org.eclipse.ant.ui/Remote Ant Support/META-INF/eclipse.inf1
-rw-r--r--ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/ProxyInputHandler.java26
-rw-r--r--ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/RemoteAntMessages.java33
-rw-r--r--ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/RemoteAntMessages.properties17
-rw-r--r--ant/org.eclipse.ant.ui/Remote Ant Support/org/eclipse/ant/internal/ui/antsupport/inputhandler/SWTInputHandler.java251
-rw-r--r--ant/org.eclipse.ant.ui/about.html54
-rw-r--r--ant/org.eclipse.ant.ui/about_files/NOTICE15
-rw-r--r--ant/org.eclipse.ant.ui/about_files/asl-v20.txt202
-rw-r--r--ant/org.eclipse.ant.ui/build.properties33
-rw-r--r--ant/org.eclipse.ant.ui/buildfiles/exportplugin.xml44
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/add_co.gifbin0 -> 215 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/alpha_mode.gifbin0 -> 110 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/ant_targets.gifbin0 -> 159 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/exportAnt_co.gifbin0 -> 148 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/filter_imported_elements.gifbin0 -> 81 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/filter_internal_targets.gifbin0 -> 246 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/filter_properties.gifbin0 -> 144 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/filter_top_level.gifbin0 -> 89 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/properties.gifbin0 -> 219 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/refresh.gifbin0 -> 209 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/remove_co.gifbin0 -> 159 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/removeall_co.gifbin0 -> 187 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/run_tool.gifbin0 -> 359 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/search.gifbin0 -> 331 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dlcl16/synced.gifbin0 -> 149 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dtool16/mark_occurrences.gifbin0 -> 208 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/dtool16/segment_edit.gifbin0 -> 232 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/add_co.gifbin0 -> 228 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/alpha_mode.gifbin0 -> 157 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/ant_targets.gifbin0 -> 211 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/exportAnt_co.gifbin0 -> 157 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/filter_imported_elements.gifbin0 -> 193 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/filter_internal_targets.gifbin0 -> 376 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/filter_properties.gifbin0 -> 213 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/filter_top_level.gifbin0 -> 150 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/properties.gifbin0 -> 578 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/refresh.gifbin0 -> 327 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/remove_co.gifbin0 -> 163 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/removeall_co.gifbin0 -> 204 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/run_tool.gifbin0 -> 379 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/search.gifbin0 -> 347 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/elcl16/synced.gifbin0 -> 160 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/etool16/mark_occurrences.gifbin0 -> 321 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/etool16/segment_edit.gifbin0 -> 585 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/eview16/ant_view.gifbin0 -> 119 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/ant.gifbin0 -> 119 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/ant_buildfile.gifbin0 -> 370 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/ant_target_err.gifbin0 -> 339 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/classpath.gifbin0 -> 330 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/defaulttarget_obj.gifbin0 -> 590 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/eclipse_obj.gifbin0 -> 308 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/import_obj.gifbin0 -> 185 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/macrodef_obj.gifbin0 -> 531 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/main_tab.gifbin0 -> 359 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/new_ant_project.gifbin0 -> 244 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/prop_ps.gifbin0 -> 578 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/property_obj.gifbin0 -> 204 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/targetinternal_obj.gifbin0 -> 374 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/targetpublic_obj.gifbin0 -> 363 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/task_obj.gifbin0 -> 82 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/taskdef_obj.gifbin0 -> 149 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/template_obj.gifbin0 -> 359 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/obj16/type.gifbin0 -> 139 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/ovr16/error_co.gifbin0 -> 82 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/ovr16/import_co.gifbin0 -> 68 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/ovr16/warning_co.gifbin0 -> 173 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/wizban/ant_wiz.pngbin0 -> 8041 bytes
-rw-r--r--ant/org.eclipse.ant.ui/icons/full/wizban/export_ant_wiz.pngbin0 -> 9429 bytes
-rw-r--r--ant/org.eclipse.ant.ui/templates/ant.properties28
-rw-r--r--ant/org.eclipse.ant.ui/templates/ant.xml167
-rw-r--r--ant/org.eclipse.ant.ui/templates/resolver.gifbin0 -> 986 bytes
-rw-r--r--update/org.eclipse.update.configurator/.classpath7
-rw-r--r--update/org.eclipse.update.configurator/.cvsignore2
-rw-r--r--update/org.eclipse.update.configurator/.options5
-rw-r--r--update/org.eclipse.update.configurator/.project33
-rw-r--r--update/org.eclipse.update.configurator/.settings/org.eclipse.jdt.core.prefs81
-rw-r--r--update/org.eclipse.update.configurator/OSGI-INF/bundleGroup.xml7
-rw-r--r--update/org.eclipse.update.configurator/about.html28
-rw-r--r--update/org.eclipse.update.configurator/build.properties18
-rw-r--r--update/org.eclipse.update.configurator/plugin.properties13
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/package.html22
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/BundleManifest.java129
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Configuration.java235
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FeatureEntry.java367
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FeatureParser.java135
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/FullFeatureParser.java150
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/IConfigurationConstants.java58
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker.java21
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker_JavaIo.java53
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Locker_JavaNio.java71
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/Messages.java66
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PlatformConfigurationFactory.java44
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginEntry.java166
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/PluginParser.java129
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/SiteEntry.java771
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/SitePolicy.java59
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/UpdateURLDecoder.java36
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/VersionedIdentifier.java66
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/XMLPrintHandler.java133
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/AboutInfo.java253
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IBundleGroupConstants.java65
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IProductConstants.java77
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/branding/IniFileReader.java366
-rw-r--r--update/org.eclipse.update.configurator/src/org/eclipse/update/internal/configurator/messages.properties58
-rw-r--r--update/org.eclipse.update.core.linux/.classpath7
-rw-r--r--update/org.eclipse.update.core.linux/.cvsignore1
-rw-r--r--update/org.eclipse.update.core.linux/.project33
-rw-r--r--update/org.eclipse.update.core.linux/about.html28
-rw-r--r--update/org.eclipse.update.core.linux/build.properties16
-rw-r--r--update/org.eclipse.update.core.linux/os/linux/x86/libupdate.sobin0 -> 6268 bytes
-rw-r--r--update/org.eclipse.update.core.linux/src/build.xml70
-rw-r--r--update/org.eclipse.update.core.linux/src/update.h76
-rw-r--r--update/org.eclipse.update.core.win32/.project22
-rw-r--r--update/org.eclipse.update.core.win32/about.html28
-rw-r--r--update/org.eclipse.update.core.win32/build.properties16
-rw-r--r--update/org.eclipse.update.core.win32/os/win32/ia64/update.dllbin0 -> 148992 bytes
-rw-r--r--update/org.eclipse.update.core.win32/os/win32/x86/update.dllbin0 -> 36864 bytes
-rw-r--r--update/org.eclipse.update.core.win32/src/build.xml74
-rw-r--r--update/org.eclipse.update.core.win32/src/make.bat17
-rw-r--r--update/org.eclipse.update.core.win32/src/setup.bat13
-rw-r--r--update/org.eclipse.update.core.win32/src/update.cpp381
-rw-r--r--update/org.eclipse.update.core.win32/src/update.h79
-rw-r--r--update/org.eclipse.update.core/.classpath8
-rw-r--r--update/org.eclipse.update.core/.cvsignore1
-rw-r--r--update/org.eclipse.update.core/.options9
-rw-r--r--update/org.eclipse.update.core/.project26
-rw-r--r--update/org.eclipse.update.core/.settings/org.eclipse.jdt.core.prefs86
-rw-r--r--update/org.eclipse.update.core/about.html28
-rw-r--r--update/org.eclipse.update.core/build.properties22
-rw-r--r--update/org.eclipse.update.core/customBuildCallbacks.xml193
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/CommandStep.java73
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/IProcessStep.java65
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/JarProcessor.java393
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/JarProcessorExecutor.java140
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/Main.java117
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/PackStep.java197
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/PackUnpackStep.java88
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/SignCommandStep.java101
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/StreamProcessor.java53
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/UnpackStep.java117
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/Utils.java326
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/ZipProcessor.java243
-rw-r--r--update/org.eclipse.update.core/jarprocessor/org/eclipse/update/internal/jarprocessor/pack-readme.html82
-rw-r--r--update/org.eclipse.update.core/preferences.ini8
-rw-r--r--update/org.eclipse.update.core/schema/featureTypes.exsd122
-rw-r--r--update/org.eclipse.update.core/schema/installHandlers.exsd113
-rw-r--r--update/org.eclipse.update.core/schema/siteTypes.exsd119
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/BaseSiteLocalFactory.java55
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationActivity.java52
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfigurationPolicy.java524
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ConfiguredSite.java1136
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ContentConsumer.java24
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/CoreExceptionWithRootCause.java35
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DefaultInstallHandler.java148
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DeltaInstallHandler.java177
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Digest.java54
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DigestContentProvider.java87
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/DigestParser.java169
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/EmptyDirectoryException.java27
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ErrorRecoveryLog.java270
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ExtendedSite.java155
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ExtendedSiteURLFactory.java25
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FatalIOException.java21
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureContentConsumer.java26
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureDownloadException.java39
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureEntryWrapper.java77
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableContentConsumer.java188
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableContentProvider.java263
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureExecutableFactory.java132
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackagedContentProvider.java466
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePackagedFactory.java82
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeaturePlugin.java46
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FeatureTypeFactory.java89
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FileFragment.java30
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/FragmentEntry.java71
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ISiteContentConsumer.java66
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallConfiguration.java974
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallHandlerProxy.java613
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallLogParser.java245
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InstallRegistry.java183
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/InternalSiteManager.java396
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/JarDeltaInstallHandler.java141
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/LiteFeature.java27
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/LiteFeatureFactory.java37
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/LocalSite.java374
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/LockManager.java39
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Messages.java289
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/NonPluginEntryContentConsumer.java55
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/NullContentReference.java90
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/PatchedFeature.java106
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/PluginEntryContentConsumer.java55
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/ProductProvider.java45
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteContentConsumer.java45
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFile.java424
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileContentConsumer.java313
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileContentProvider.java32
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileFactory.java446
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFileNonPluginContentConsumer.java76
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFilePackedPluginContentConsumer.java135
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteFilePluginContentConsumer.java189
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteReconciler.java347
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteStatusAnalyzer.java463
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteTypeFactory.java90
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteURLContentProvider.java32
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/SiteURLFactory.java118
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/TargetFeature.java56
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/URLEncoder.java152
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/URLKey.java76
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateCore.java320
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateManagerLogWriter.java301
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateManagerUtils.java964
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdatePreferencesInitializer.java51
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateSession.java50
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateSiteFeatureReference.java137
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/UpdateSiteIncludedFeatureReference.java146
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/Volume.java71
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/connection/AbstractResponse.java69
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/connection/ConnectionFactory.java34
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/connection/ConnectionThreadManager.java231
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/connection/ConnectionThreadManagerFactory.java29
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/connection/FileResponse.java62
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/connection/HttpResponse.java251
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/connection/IResponse.java76
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/connection/OtherResponse.java96
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/connection/TooManyOpenConnectionsException.java25
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/core/messages.properties279
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorCommand.java246
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorSite.java822
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/mirror/MirrorSiteFactory.java234
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/model/BundleManifest.java111
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationActivityModel.java115
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfigurationPolicyModel.java280
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ConfiguredSiteModel.java177
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/model/DefaultPluginParser.java107
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/model/ITimestamp.java21
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/model/InstallConfigurationModel.java327
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/model/InstallConfigurationParser.java218
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/model/SiteLocalModel.java286
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/model/SiteLocalParser.java138
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/model/SiteWithTimestamp.java264
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/BatchFeatureOperation.java76
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/BatchInstallOperation.java120
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ConfigOperation.java78
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ConfigureFeaturesOperation.java31
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/DuplicateConflictsValidator.java225
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureHierarchyElement.java446
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureOperation.java75
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/FeatureStatus.java57
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/IBatchFeatureOperation.java35
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/IConfigureFeaturesOperation.java15
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/IUnconfigureAndUninstallFeatureOperation.java18
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/IUnconfigureAndUninstallFeaturesOperation.java16
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/IUnconfigureFeaturesOperation.java16
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/IUninstallFeaturesOperation.java15
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/InstallOperation.java168
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/JobRoot.java101
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/Operation.java31
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/OperationFactory.java108
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/OperationValidator.java1397
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/PatchCleaner.java64
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ReplaceFeatureVersionOperation.java100
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/RevertConfigurationOperation.java54
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/ToggleSiteOperation.java58
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UnconfigOperation.java82
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UnconfigureAndUninstallFeatureOperation.java71
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UnconfigureAndUninstallFeaturesOperation.java30
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UnconfigureFeaturesOperation.java29
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UninstallFeaturesOperation.java31
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UninstallOperation.java80
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/operations/UpdateUtils.java692
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/provisional/SiteOptimizerApplication.java907
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/search/BaseSearchCategory.java30
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/search/OptionalFeatureSearchCategory.java98
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/search/QueryUpdateSiteAdapter.java28
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/search/SiteSearchCategory.java249
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatePolicy.java316
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdateSiteAdapter.java45
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/search/UpdatesSearchCategory.java571
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/security/CertificatePair.java73
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerificationResult.java334
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/security/JarVerifier.java457
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/security/KeyStores.java219
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/security/KeystoreHandle.java62
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/verifier/CertVerificationResult.java259
-rw-r--r--update/org.eclipse.update.core/src/org/eclipse/update/internal/verifier/CertVerifier.java271
-rw-r--r--update/org.eclipse.update.examples/.classpath7
-rw-r--r--update/org.eclipse.update.examples/.cvsignore1
-rw-r--r--update/org.eclipse.update.examples/.project33
-rw-r--r--update/org.eclipse.update.examples/.settings/org.eclipse.jdt.core.prefs64
-rw-r--r--update/org.eclipse.update.examples/META-INF/MANIFEST.MF13
-rw-r--r--update/org.eclipse.update.examples/Scrapbook2.jpage111
-rw-r--r--update/org.eclipse.update.examples/about.html42
-rw-r--r--update/org.eclipse.update.examples/build.properties17
-rw-r--r--update/org.eclipse.update.examples/plugin.properties13
-rw-r--r--update/org.eclipse.update.examples/plugin.xml36
-rw-r--r--update/org.eclipse.update.examples/site/features/com.reddot.reddot_1.0.0.jarbin0 -> 10284 bytes
-rw-r--r--update/org.eclipse.update.examples/site/features/com.reddot.reddot_2.0.0.jarbin0 -> 16134 bytes
-rw-r--r--update/org.eclipse.update.examples/site/info/images/redDot.jpgbin0 -> 1859 bytes
-rw-r--r--update/org.eclipse.update.examples/site/plugins/com.reddot.reddot_1.0.0.jarbin0 -> 3149 bytes
-rw-r--r--update/org.eclipse.update.examples/site/plugins/com.reddot.reddot_2.0.0.jarbin0 -> 3152 bytes
-rw-r--r--update/org.eclipse.update.examples/site/site.xml29
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipConverter.java162
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureContentProvider.java261
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureFactory.java68
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipFeatureParser.java208
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipPluginParser.java88
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipSiteContentProvider.java36
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/BuildZipSiteFactory.java90
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/DefaultModelWriter.java233
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/Test.java60
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/buildzip/java.page.jpage45
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/freeform/FreeFormSiteContentProvider.java44
-rw-r--r--update/org.eclipse.update.examples/src/org/eclipse/update/examples/freeform/FreeFormSiteFactory.java79
-rw-r--r--update/org.eclipse.update.scheduler/.classpath7
-rw-r--r--update/org.eclipse.update.scheduler/.cvsignore1
-rw-r--r--update/org.eclipse.update.scheduler/.project26
-rw-r--r--update/org.eclipse.update.scheduler/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--update/org.eclipse.update.scheduler/about.html28
-rw-r--r--update/org.eclipse.update.scheduler/build.properties17
-rw-r--r--update/org.eclipse.update.scheduler/plugin.properties18
-rw-r--r--update/org.eclipse.update.scheduler/plugin.xml35
-rw-r--r--update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/AutomaticUpdateJob.java29
-rw-r--r--update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/ScheduledPluginUninstall.java98
-rw-r--r--update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/SchedulerStartup.java273
-rw-r--r--update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/UpdateJobChangeAdapter.java112
-rw-r--r--update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/UpdateSchedulerMessages.java67
-rw-r--r--update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/UpdateSchedulerPlugin.java155
-rw-r--r--update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/UpdateSchedulerResources.properties53
-rw-r--r--update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/preferences/AutomaticUpdatesPreferencePage.java240
-rw-r--r--update/org.eclipse.update.scheduler/src/org/eclipse/update/internal/scheduler/preferences/PreferenceInitializer.java34
-rw-r--r--update/org.eclipse.update.tests.core/.classpath7
-rw-r--r--update/org.eclipse.update.tests.core/.cvsignore1
-rw-r--r--update/org.eclipse.update.tests.core/.project38
-rw-r--r--update/org.eclipse.update.tests.core/.settings/org.eclipse.jdt.core.prefs64
-rw-r--r--update/org.eclipse.update.tests.core/META-INF/MANIFEST.MF38
-rw-r--r--update/org.eclipse.update.tests.core/about.html28
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/features/feature3/feature.xml12
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/Pde_core.jarbin0 -> 65389 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/help.jarbin0 -> 364483 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/junit_3.7.jarbin0 -> 258684 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml8
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data/plugins/org.eclipse.update.plugin1_1.1.1/src.jarbin0 -> 627 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/feature3/feature.xml12
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/helpFeature.jarbin0 -> 62496 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/features/org.eclipse.pde.feature_1.0.0.jarbin0 -> 60984 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/img/top_titlsm.gifbin0 -> 3083 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/img/wel_ml.jpgbin0 -> 11159 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/info/siteInfo.html63
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/Pde_core.jarbin0 -> 65389 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/help.jarbin0 -> 364483 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/junit_3.7.jarbin0 -> 258684 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml8
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/plugins/org.eclipse.update.plugin1_1.1.1/src.jarbin0 -> 627 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/ExecutableFeaturePackagedSite/data2/site.xml22
-rw-r--r--update/org.eclipse.update.tests.core/data/FTPLikeSite/site.xml4
-rw-r--r--update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site1/features/feature3/feature.xml12
-rw-r--r--update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site1/site.xml4
-rw-r--r--update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site2/features/feature3/features2.jarfilebin0 -> 1401 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site2/site.xml4
-rw-r--r--update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site3/features/feature3/features2.jarfilebin0 -> 1401 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/FeatureTypeExamples/site3/site.xml4
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/features space/helpFeature.jarbin0 -> 62502 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/features space/space feature.jarbin0 -> 61392 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/info/img/top_titlsm.gifbin0 -> 3083 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/info/img/wel_ml.jpgbin0 -> 11159 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/info/siteInfo.html63
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/install/features space/feature3/feature.xml12
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/plugins space/Pde_core.jarbin0 -> 65389 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/plugins space/help.jarbin0 -> 364483 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/plugins space/junit_3.7.jarbin0 -> 258684 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/plugins space/org.eclipse.update.plugin1_1.1.1/plugin.xml8
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/plugins space/org.eclipse.update.plugin1_1.1.1/src.jarbin0 -> 627 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/Site with space/site.xml22
-rw-r--r--update/org.eclipse.update.tests.core/data/SiteTypeExamples/site1/features/feature3/features2.jarfilebin0 -> 1401 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/SiteTypeExamples/site1/site.xml4
-rw-r--r--update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/features/helpFeature.jarbin0 -> 62404 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/features/org.eclipse.pde.feature_1.0.0.jarbin0 -> 60998 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/Pde_core.jarbin0 -> 65389 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/help.jarbin0 -> 364483 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/SiteURLTest/data/artifacts/plugins/junit_3.7.jarbin0 -> 258684 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/img/top_titlsm.gifbin0 -> 3083 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/img/wel_ml.jpgbin0 -> 11159 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/SiteURLTest/data/info/siteInfo.html63
-rw-r--r--update/org.eclipse.update.tests.core/data/SiteURLTest/data/site.xml18
-rw-r--r--update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/file1.zipbin0 -> 163 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/install/features/feature3/feature.xml5
-rw-r--r--update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site1/site.xml7
-rw-r--r--update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/features/features3.jarbin0 -> 986 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/non data/another file.zipbin0 -> 163 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/dataEntrySiteTest/site2/site.xml7
-rw-r--r--update/org.eclipse.update.tests.core/data/features/features2.jarbin0 -> 1478 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/features/org.eclipse.test.feature_1.0.0.jarbin0 -> 909 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/features/org.eclipse.update.core.tests.feature1_1.0.4.jarbin0 -> 839 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/features/org.eclipse_test_feature.jarbin0 -> 928 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site1/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site1/.sitebuild/build.log318
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site1/.sitebuild/sitebuild.xml11
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature1_1.0.0.jarbin0 -> 660 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature2_1.0.0.jarbin0 -> 661 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site1/features/update.feature3_1.0.0.jarbin0 -> 667 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin1_1.0.0.jarbin0 -> 953 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin2_1.0.0.jarbin0 -> 1341 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin3_1.0.0.jarbin0 -> 1730 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site1/plugins/com.plugin4_1.0.0.jarbin0 -> 2118 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site1/site.xml27
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site2/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site2/.sitebuild/build.log203
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site2/.sitebuild/sitebuild.xml10
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site2/features/update.feature1_1.0.0.jarbin0 -> 659 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site2/features/update.feature2_1.0.0.jarbin0 -> 661 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site2/plugins/com.plugin1_1.0.0.jarbin0 -> 953 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site2/plugins/com.plugin2_1.0.0.jarbin0 -> 1341 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site2/site.xml5
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site3/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site3/.sitebuild/build.log318
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site3/.sitebuild/sitebuild.xml10
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site3/features/update.feature1b_2.0.0.jarbin0 -> 672 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site3/features/update.feature2b_2.0.0.jarbin0 -> 672 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin1_1.0.0.jarbin0 -> 953 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin1a_1.0.1.jarbin0 -> 1344 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin2_1.0.0.jarbin0 -> 2123 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site3/plugins/com.plugin2a_1.0.1.jarbin0 -> 1736 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site3/site.xml19
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site4/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site4/.sitebuild/build.log791
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site4/.sitebuild/sitebuild.xml9
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1_1.0.0.jarbin0 -> 660 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1_1.0.1.jarbin0 -> 505 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1b_2.0.0.jarbin0 -> 672 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site4/features/update.feature1c_3.0.0.jarbin0 -> 614 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site4/plugins/com.plugin1_1.0.0.jarbin0 -> 953 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site4/plugins/com.plugin1a_1.0.1.jarbin0 -> 1344 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site4/site.xml11
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/.sitebuild/build.log791
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/.sitebuild/sitebuild.xml10
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1_1.0.0.jarbin0 -> 660 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1_1.0.1.jarbin0 -> 505 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1b_2.0.0.jarbin0 -> 672 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature1c_3.0.0.jarbin0 -> 614 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2_1.0.0.jarbin0 -> 661 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2b_2.0.0.jarbin0 -> 672 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/features/update.feature2c_3.0.0.jarbin0 -> 614 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin1_1.0.0.jarbin0 -> 954 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin1a_1.0.1.jarbin0 -> 1346 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin2_1.0.0.jarbin0 -> 2127 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/plugins/com.plugin2a_1.0.1.jarbin0 -> 2128 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/mirrors/update-site5/site.xml19
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/features/org.eclipse.update.core.tests.childrenfeature_2.0.0.jarbin0 -> 770 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/features/rootfeature.jarbin0 -> 756 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jarbin0 -> 985 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jarbin0 -> 986 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jarbin0 -> 985 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest/site.xml4
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/features/childrenfeature.jarbin0 -> 778 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/features/rootfeature.jarbin0 -> 773 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jarbin0 -> 985 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jarbin0 -> 986 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jarbin0 -> 985 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest2/site.xml7
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/features/childrenfeature.jarbin0 -> 826 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/features/rootfeature.jarbin0 -> 797 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jarbin0 -> 985 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jarbin0 -> 986 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jarbin0 -> 985 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/nestedFeatureSiteTest3/site.xml6
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/feature1.xml25
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/feature1bis.xml25
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/feature2.xml24
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/feature3.xml25
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/feature4.xml26
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/reddot.xml19
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/reddot1.xml18
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/site.xml40
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/site10.xml12
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/site2.xml4
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/site3.xml6
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/site4.xml20
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/site7.xml42
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/site8.xml41
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/site9.xml40
-rw-r--r--update/org.eclipse.update.tests.core/data/parsertests/siteftp.xml4
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/.classpath9
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/.project23
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/FeatureWithInstallHandler_1.0.0.jarbin0 -> 2137 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/bin/HandlerWithUI$1.classbin0 -> 854 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/bin/HandlerWithUI.classbin0 -> 3461 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/build.properties15
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/feature.xml27
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/handler.jarbin0 -> 3072 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/FeatureWithInstallHandler/src/HandlerWithUI.java145
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/META-INF/MANIFEST.MF2
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/cpl-v10.html266
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/feature.properties151
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/feature.xml46
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.doc_2.0.0/license.html126
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/META-INF/MANIFEST.MF2
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/eclipse_update_120.jpgbin0 -> 14692 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/feature.properties151
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/feature.xml46
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.doc_2.0.0/license.html71
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/META-INF/MANIFEST.MF2
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/eclipse_update_120.jpgbin0 -> 14692 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/feature.properties151
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/feature.xml21
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo.source_2.0.0/license.html71
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/META-INF/MANIFEST.MF2
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/eclipse_update_120.jpgbin0 -> 14692 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/feature.properties154
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/feature.xml59
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.ecore.sdo_2.0.0/license.html71
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/META-INF/MANIFEST.MF2
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/cpl-v10.html266
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/feature.properties140
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/feature.xml86
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.sdk_2.0.0/license.html126
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/META-INF/MANIFEST.MF2
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/cpl-v10.html266
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/feature.properties151
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/feature.xml21
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf.source_2.0.0/license.html126
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/META-INF/MANIFEST.MF2
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/cpl-v10.html266
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/feature.properties154
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/feature.xml148
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.emf_2.0.0/license.html126
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/feature.xml113
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt-feature/license.html72
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/feature.xml16
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.jdt.source-feature/license.html72
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/feature.xml69
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde-feature/license.html72
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/feature.xml14
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.pde.source-feature/license.html72
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/feature.xml387
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform-feature/license.html72
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/feature.xml26
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.platform.source-feature/license.html72
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/.project17
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/feature.xml30
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.sdk-feature/license.html72
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/META-INF/MANIFEST.MF2
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/feature.properties151
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/feature.xml48
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.doc_2.0.0/license.html71
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/META-INF/MANIFEST.MF2
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/feature.properties151
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/feature.xml48
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd.source_2.0.0/license.html71
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/META-INF/MANIFEST.MF2
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/cpl-v10.html125
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/eclipse_update_120.jpgbin0 -> 14641 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/feature.properties154
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/feature.xml71
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/eclipse/features/org.eclipse.xsd_2.0.0/license.html71
-rw-r--r--update/org.eclipse.update.tests.core/data/perf/platform.xml179
-rw-r--r--update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.feature1.plugin1_1.1.1.jarbin0 -> 460 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.feature2.plugin2_2.2.2.jarbin0 -> 460 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.dummy_7.9.8.jarbin0 -> 5931 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jarbin0 -> 973 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jarbin0 -> 974 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml8
-rw-r--r--update/org.eclipse.update.tests.core/data/plugins/org.eclipse.update.plugin1_1.1.1/src.jarbin0 -> 627 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/reconciliationSites/site1/install/features/feature3/feature.xml12
-rw-r--r--update/org.eclipse.update.tests.core/data/reconciliationSites/site1/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml8
-rw-r--r--update/org.eclipse.update.tests.core/data/reconciliationSites/site1/plugins/org.eclipse.update.plugin1_1.1.1/src.jarbin0 -> 627 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/reconciliationSites/site2/install/features/feature3/feature.xml12
-rw-r--r--update/org.eclipse.update.tests.core/data/reconciliationSites/site2/plugins/org.eclipse.update.core_2.0.0/plugin.xml8
-rw-r--r--update/org.eclipse.update.tests.core/data/reconciliationSites/site2/plugins/org.eclipse.update.core_2.0.0/src.jarbin0 -> 627 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/site.xml19
-rw-r--r--update/org.eclipse.update.tests.core/data/site2/site.xml6
-rw-r--r--update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleAndPluginManifests_1.0.3/META-INF/MANIFEST.MF12
-rw-r--r--update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleAndPluginManifests_1.0.3/plugin.xml3
-rw-r--r--update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/bundleManifest_1.0.1/META-INF/MANIFEST.MF12
-rw-r--r--update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.0/plugin.xml8
-rw-r--r--update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.0/src.jarbin0 -> 627 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.1/plugin.xml8
-rw-r--r--update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/feature1_plugin2_5.0.1/src.jarbin0 -> 627 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/siteTestLocalSite/plugins/notBundleManifest_1.0.2/META-INF/MANIFEST.MF9
-rw-r--r--update/org.eclipse.update.tests.core/data/testAPI/features/feature3/feature.xml12
-rw-r--r--update/org.eclipse.update.tests.core/data/testAPI/plugins/org.eclipse.update.plugin1_1.1.1/plugin.xml8
-rw-r--r--update/org.eclipse.update.tests.core/data/testAPI/plugins/org.eclipse.update.plugin1_1.1.1/src.jarbin0 -> 627 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/testAPI/site.xml19
-rw-r--r--update/org.eclipse.update.tests.core/data/validation/site2/.eclipseproduct3
-rw-r--r--update/org.eclipse.update.tests.core/data/validation/site3/.eclipseextension1
-rw-r--r--update/org.eclipse.update.tests.core/data/validation/site4/eclipse/.eclipseextension1
-rw-r--r--update/org.eclipse.update.tests.core/data/validation/site5/.eclipseUM3
-rw-r--r--update/org.eclipse.update.tests.core/data/validation/site5/eclipse/.eclipseextension3
-rw-r--r--update/org.eclipse.update.tests.core/data/validation/site6/.eclipseUM1
-rw-r--r--update/org.eclipse.update.tests.core/data/validation/site6/children/children/eclipse/.eclipseextension1
-rw-r--r--update/org.eclipse.update.tests.core/data/xmls/apitests/org.eclipse.test.feature_1.0.0/feature.xml13
-rw-r--r--update/org.eclipse.update.tests.core/data/xmls/apitests/org.eclipse_test_feature/feature.xml13
-rw-r--r--update/org.eclipse.update.tests.core/data/xmls/feature_1.0.0/feature.xml13
-rw-r--r--update/org.eclipse.update.tests.core/data/xmls/feature_1.0.0/feature1.gifbin0 -> 121 bytes
-rw-r--r--update/org.eclipse.update.tests.core/data/xmls/site1/site.xml22
-rw-r--r--update/org.eclipse.update.tests.core/plugin.xml27
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/AllTests.java60
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/UpdateManagerTestCase.java161
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/UpdateTestsPlugin.java125
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/AllAPITests.java46
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/DefaultFeature.java173
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/MyURLEntry.java31
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestDefaultExecutableFeatureAPI.java184
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestDefaultPackageFeatureAPI.java175
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestFeatureContentProvider_FileFilterAPI.java85
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestLocalSiteAPI.java117
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestNestedFeatureAPI.java153
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestPluginContainerAPI.java77
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestSiteAPI.java39
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestSiteManagerAPI.java77
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/api/TestUpdateManagerUtilsAPI.java229
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/AllBrandingTests.java40
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/BundleProviderTest.java50
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/branding/ProductTest.java41
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/AllConfigurationsTests.java30
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/TestBackward.java65
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/configurations/TestRevert.java126
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/TestErrorRecoveryLog.java32
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/AllPlatformConfigurationTests.java38
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/PlatformConfigurationTestCase.java78
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/TestPlatCfgAPI.java207
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/core/boot/TestPlatCfgDefault.java33
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/implementation/SiteFTP.java272
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/implementation/SiteFTPFactory.java64
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/AllMirrorTests.java40
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/MirrorManagerTestCase.java490
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteDoubleEmbeddedFeatureMirror.java212
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteEmbeddedFeatureMirror.java189
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/mirror/TestRemoteFeatureVersionMirror.java110
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/AllModelTests.java40
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/SiteMain.java158
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site.xml35
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site_old_format.xml30
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/model/site_with_type.xml5
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nativeTests/TestLocalSystemInfo.java68
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nestedfeatures/AllNestedTests.java32
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/nestedfeatures/TestInstall.java301
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/AllParserTests.java35
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestCategories.java62
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestFeatureParse.java132
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/parser/TestSiteParse.java288
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/perfms/AllPerformanceTests.java29
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/perfms/TestStartup.java76
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/reconciliation/AllReconciliationTests.java40
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/reconciliation/TestSiteReconciliation.java169
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/AllRegularInstallTests.java41
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/MultipleTestLocalSite.java33
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestDataEntryInstall.java100
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestExecutableInstall.java72
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestExecutablePackagedInstall.java154
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestGetFeature.java49
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestInstall.java329
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestInstallURLSIteXML.java332
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestLocalSite.java420
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularInstall/TestSpaceInInstall.java140
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularRemove/AllRegularRemoveTests.java29
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/regularRemove/TestRemove.java91
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/sitevalidation/AllSiteValidationTests.java30
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/sitevalidation/TestSiteValidation.java163
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/AllStandaloneTests.java43
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/StandaloneManagerTestCase.java323
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestBundlesInstall.java127
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureDisable.java103
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureEnable.java109
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureInstall.java134
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureUninstall.java123
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/standalone/TestFeatureUpdate.java138
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/AllTypesTests.java34
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/TestFeatureType.java155
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/types/TestSiteType.java84
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/uivalues/AllCoreUITests.java33
-rw-r--r--update/org.eclipse.update.tests.core/src/org/eclipse/update/tests/uivalues/TestUILabel.java87
-rw-r--r--update/org.eclipse.update.tests.core/webserver/Site with space/features space/helpFeature.jarbin0 -> 62481 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/Site with space/features space/space feature.jarbin0 -> 61298 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/Site with space/info/img/top_titlsm.gifbin0 -> 3083 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/Site with space/info/img/wel_ml.jpgbin0 -> 11159 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/Site with space/info/siteInfo.html63
-rw-r--r--update/org.eclipse.update.tests.core/webserver/Site with space/install/features space/feature3/feature.xml11
-rw-r--r--update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/Pde_core.jarbin0 -> 65389 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/help.jarbin0 -> 364483 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/Site with space/plugins space/junit_3.7.jarbin0 -> 258684 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/Site with space/site.xml20
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager/features/helpFeature.jarbin0 -> 62376 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager/features/org.eclipse.pde.feature_1.0.0.jarbin0 -> 60935 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager/info/img/top_titlsm.gifbin0 -> 3083 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager/info/img/wel_ml.jpgbin0 -> 11159 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager/info/siteInfo.html63
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/Pde_core.jarbin0 -> 65389 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/help.jarbin0 -> 364483 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager/plugins/junit_3.7.jarbin0 -> 258684 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager/site.xml18
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/features2.jarbin0 -> 1430 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse.test.feature_1.0.0.jarbin0 -> 832 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse.update.core.tests.feature1_1.0.4.jarbin0 -> 888 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/features/org.eclipse_test_feature.jarbin0 -> 40806 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/features/org.eclipse.update.core.tests.childrenfeature_2.0.0.jarbin0 -> 749 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/features/rootfeature.jarbin0 -> 732 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jarbin0 -> 985 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jarbin0 -> 986 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.1.jarbin0 -> 985 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/nestedFeatureSiteTest/site.xml4
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/org.eclipse.update.core.feature2_1.0.0/org.eclipse.update.core.feature2_2.2.2.jarbin0 -> 1392 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.feature1.plugin1_1.1.1.jarbin0 -> 460 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.feature2.plugin2_2.2.2.jarbin0 -> 460 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.dummy_7.9.8.jarbin0 -> 180132 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.feature1.plugin1_3.5.6.jarbin0 -> 47228 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/plugins/org.eclipse.update.core.tests.feature1.plugin2_5.0.0.jarbin0 -> 47229 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/UpdateManager2/site.xml24
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSite/features/com.example.bundle.feature_1.0.0.jarbin0 -> 717 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.budle.fragment.ui_1.0.0.jarbin0 -> 1699 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.fragment_1.0.0.jarbin0 -> 805 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.plugin.ui_2.0.0.jarbin0 -> 1755 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSite/plugins/com.example.bundle.plugin_1.0.0.jarbin0 -> 1705 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSite/site.xml7
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.classpath7
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.project32
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/.template4
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/META-INF/MANIFEST.MF8
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.budle.fragment.ui/fragment.xml18
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/.project17
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.feature/feature.xml45
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.classpath7
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.project31
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/.template4
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/META-INF/MANIFEST.MF8
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.fragment/fragment.xml17
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.classpath7
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.project31
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/.template4
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/META-INF/MANIFEST.MF12
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/bin/com/example/bundle/plugin/ui/UiPlugin.classbin0 -> 1530 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin.ui/plugin.xml22
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.classpath7
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.project30
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/.template4
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/META-INF/MANIFEST.MF11
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/bin/com/example/bundle/plugin/PluginPlugin.classbin0 -> 1538 bytes
-rw-r--r--update/org.eclipse.update.tests.core/webserver/bundleSitesrc/com.example.bundle.plugin/plugin.xml21
-rw-r--r--update/org.eclipse.update.ui.forms/.project11
-rw-r--r--update/org.eclipse.update.ui.forms/README.TXT2
-rw-r--r--update/org.eclipse.update.ui.win32/.project11
-rw-r--r--update/org.eclipse.update.ui.win32/README.TXT2
-rw-r--r--update/org.eclipse.update.ui/.classpath7
-rw-r--r--update/org.eclipse.update.ui/.cvsignore1
-rw-r--r--update/org.eclipse.update.ui/.project26
-rw-r--r--update/org.eclipse.update.ui/.settings/org.eclipse.jdt.core.prefs69
-rw-r--r--update/org.eclipse.update.ui/Graphics_update.html955
-rw-r--r--update/org.eclipse.update.ui/about.html28
-rw-r--r--update/org.eclipse.update.ui/build.properties19
-rw-r--r--update/org.eclipse.update.ui/icons/dlcl16/collapseall.gifbin0 -> 155 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/dlcl16/hierarchicalLayout.gifbin0 -> 101 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/dlcl16/show_unconf.gifbin0 -> 376 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/dtool16/config_wiz.gifbin0 -> 232 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/dtool16/install_wiz.gifbin0 -> 348 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/dtool16/uninstall_wiz.gifbin0 -> 367 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/dtool16/update_wiz.gifbin0 -> 369 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/elcl16/collapseall.gifbin0 -> 157 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/elcl16/hierarchicalLayout.gifbin0 -> 101 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/elcl16/show_unconf.gifbin0 -> 591 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/etool16/config_wiz.gifbin0 -> 352 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/etool16/install_wiz.gifbin0 -> 377 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/etool16/uninstall_wiz.gifbin0 -> 604 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/etool16/update_wiz.gifbin0 -> 600 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/eview16/configs.gifbin0 -> 368 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/eview16/preview.gifbin0 -> 648 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/forms/def_provider.jpgbin0 -> 25721 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/forms/form_banner.gifbin0 -> 5600 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/forms/form_banner.jpgbin0 -> 4985 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/forms/form_underline.jpgbin0 -> 3989 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/forms/topic.gifbin0 -> 162 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/app_obj.gifbin0 -> 591 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/bfolder_obj.gifbin0 -> 377 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/category_obj.gifbin0 -> 572 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/config_obj.gifbin0 -> 368 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/efix2_obj.gifbin0 -> 597 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/efix_obj.gifbin0 -> 609 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/error_st_obj.gifbin0 -> 339 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/esite_obj.gifbin0 -> 319 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/feature_obj.gifbin0 -> 585 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/history_obj.gifbin0 -> 578 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/lsite_obj.gifbin0 -> 348 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/notinstalled_feature_obj.gifbin0 -> 237 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/ok_st_obj.gifbin0 -> 343 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/psite_obj.gifbin0 -> 333 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/site_obj.gifbin0 -> 353 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/unconf_feature_obj.gifbin0 -> 596 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/updates_obj.gifbin0 -> 332 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/usearch_obj.gifbin0 -> 586 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/obj16/web_bkmrk_obj.gifbin0 -> 578 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/ovr16/add_stat.gifbin0 -> 186 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/ovr16/current_co.gifbin0 -> 79 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/ovr16/del_stat.gifbin0 -> 184 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/ovr16/error_co.gifbin0 -> 82 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/ovr16/installable_co.gifbin0 -> 169 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/ovr16/linked_co.gifbin0 -> 85 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/ovr16/mod_co.gifbin0 -> 187 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/ovr16/unconfigured_co.gifbin0 -> 112 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/ovr16/updated_co.gifbin0 -> 105 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/ovr16/warning_co.gifbin0 -> 173 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/wizban/config_wiz.gifbin0 -> 3388 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/wizban/def_wizban.jpgbin0 -> 33456 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/wizban/install_wiz.gifbin0 -> 3550 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/wizban/uninstall_wiz.gifbin0 -> 3719 bytes
-rw-r--r--update/org.eclipse.update.ui/icons/wizban/update_wiz.gifbin0 -> 3744 bytes
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/ConfigurationManagerWindow.java297
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/RestartDialog.java88
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/URLCoder.java59
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateLabelProvider.java49
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUI.java273
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIImages.java105
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIMessages.java357
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/UpdateUIPluginResources.properties409
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/BookmarkFolder.java59
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/BookmarkUtil.java280
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ConfiguredFeatureAdapter.java116
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ConfiguredSiteAdapter.java51
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/DiscoveryFolder.java150
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/FeatureAdapter.java58
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/FeatureReferenceAdapter.java105
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredFeatureAdapter.java21
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredSiteAdapter.java19
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IConfiguredSiteContext.java22
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/IFeatureAdapter.java31
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/ISiteAdapter.java25
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/MissingFeature.java456
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/NamedModelObject.java96
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SimpleFeatureAdapter.java67
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SiteBookmark.java299
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/SiteCategory.java203
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/UIModelObject.java57
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/model/UpdateModel.java122
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/AbstractOverlayIcon.java115
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/DefaultContentProvider.java22
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/ImageOverlayIcon.java34
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/OverlayIcon.java117
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/PixelConverter.java45
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/SWTUtil.java101
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/parts/SharedLabelProvider.java203
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/preferences/MainPreferencePage.java290
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/preferences/UpdateSettingsPreferencePage.java116
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/ConfiguredSitePropertyPage.java63
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureCopyrightPropertyPage.java92
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureGeneralPropertyPage.java175
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureLicensePropertyPage.java79
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/FeatureStatusPropertyPage.java160
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/properties/InstallConfigurationPropertyPage.java51
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/Authentication.java36
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationDialog.java145
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationPage.java333
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/JarVerificationService.java146
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/security/UserValidationDialog.java159
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationPreview.java196
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ConfigurationView.java1387
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FeatureAction.java37
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FeatureStateAction.java99
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FeaturesStateAction.java163
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FindAndInstallHandler.java32
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/FindUpdatesAction.java151
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/IPreviewTask.java22
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/InstallOptionalFeatureAction.java93
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/InstallationHistoryAction.java274
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ManageConfigurationHandler.java32
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/NewExtensionLocationAction.java111
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ReplaceVersionAction.java60
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/RevertConfigurationAction.java43
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/ShowActivitiesAction.java32
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/SiteStateAction.java77
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UnconfigureAndUninstallFeatureAction.java97
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UnconfigureAndUninstallFeaturesAction.java109
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UninstallFeatureAction.java99
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/views/UninstallFeaturesAction.java108
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ActivitiesTableViewer.java145
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/BannerPage.java76
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ContainerCheckedTreeViewer.java187
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/DuplicateConflictsDialog.java123
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/EditSiteDialog.java69
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/FeatureSorter.java88
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/IDynamicPage.java22
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ISearchProvider.java20
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard.java155
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizard2.java552
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/InstallWizardOperation.java105
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LicensePage.java213
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/LocalSiteSelector.java264
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/MirrorsDialog.java156
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ModeSelectionPage.java150
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/NewUpdateSiteDialog.java216
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/OptionalFeaturesPage.java331
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReplaceFeatureVersionWizard.java36
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReplaceFeatureVersionWizardPage.java180
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ResizableInstallWizardDialog.java61
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/RevertConfigurationWizard.java38
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/RevertConfigurationWizardPage.java263
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ReviewPage.java1662
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/ShowActivitiesDialog.java207
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitePage.java557
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/SitesImportExport.java88
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TableLayoutComposite.java188
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetPage.java833
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/TargetSiteDialog.java376
-rw-r--r--update/org.eclipse.update.ui/src/org/eclipse/update/internal/ui/wizards/UIProblemHandler.java29
-rw-r--r--update/org.eclipse.update.ui/src_webapp/org/eclipse/update/internal/ui/servlets/InstallServlet.java210
-rw-r--r--update/org.eclipse.update.ui/src_webapp/org/eclipse/update/internal/ui/servlets/ServletsUtil.java151
-rw-r--r--update/org.eclipse.update.ui/webapp/WEB-INF/.cvsignore1
-rw-r--r--update/org.eclipse.update.ui/webapp/WEB-INF/lib/.cvsignore1
-rw-r--r--update/org.eclipse.update.ui/webapp/WEB-INF/web.xml20
-rw-r--r--update/org.eclipse.update.ui/webapp/images/backward_nav.gifbin0 -> 104 bytes
-rw-r--r--update/org.eclipse.update.ui/webapp/images/form_banner.jpgbin0 -> 4985 bytes
-rw-r--r--update/org.eclipse.update.ui/webapp/images/form_underline.jpgbin0 -> 3989 bytes
-rw-r--r--update/org.eclipse.update/.project11
-rw-r--r--update/org.eclipse.update/README.TXT2
1409 files changed, 134819 insertions, 0 deletions
diff --git a/ant/org.eclipse.ant.core/.classpath b/ant/org.eclipse.ant.core/.classpath
new file mode 100644
index 000000000..dc92c623b
--- /dev/null
+++ b/ant/org.eclipse.ant.core/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry output="src_ant_bin" kind="src" path="src_ant/"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/ant/org.eclipse.ant.core/.externalToolBuilders/Build Ant Support JAR.launch b/ant/org.eclipse.ant.core/.externalToolBuilders/Build Ant Support JAR.launch
new file mode 100644
index 000000000..0f5d31333
--- /dev/null
+++ b/ant/org.eclipse.ant.core/.externalToolBuilders/Build Ant Support JAR.launch
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,clean"/>
+<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.debug.ui.target_run_perspective" value="perspective_none"/>
+<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.core/src_ant&quot; type=&quot;2&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.core/buildfiles/buildExtraJAR.xml&quot; type=&quot;1&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.core&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.ant.core/buildfiles/buildExtraJAR.xml}"/>
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_RUN_IN_BACKGROUND" value="false"/>
+</launchConfiguration>
diff --git a/ant/org.eclipse.ant.core/.project b/ant/org.eclipse.ant.core/.project
new file mode 100644
index 000000000..f37d1c56c
--- /dev/null
+++ b/ant/org.eclipse.ant.core/.project
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ant.core</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value>&lt;project&gt;/.externalToolBuilders/Build Ant Support JAR.launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/ant/org.eclipse.ant.core/.settings/org.eclipse.pde.core.prefs b/ant/org.eclipse.ant.core/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 000000000..a490ecf70
--- /dev/null
+++ b/ant/org.eclipse.ant.core/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+#Thu May 27 14:47:50 PDT 2004
+eclipse.preferences.version=1
+selfhosting.binExcludes=/org.eclipse.ant.core/src_ant_bin
diff --git a/ant/org.eclipse.ant.core/about.html b/ant/org.eclipse.ant.core/about.html
new file mode 100644
index 000000000..b3c0a26b7
--- /dev/null
+++ b/ant/org.eclipse.ant.core/about.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>October 8, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+<h3>Third Party Content</h3>
+
+<p>The Content includes items that have been sourced from third parties as set out below. If you
+did not receive this Content directly from the Eclipse Foundation, the following is provided
+for informational purposes only, and you should look to the Redistributor&rsquo;s license for
+terms and conditions of use.</p>
+
+<h4>Ant 1.7.1</h4>
+
+<p>The following classes in the plug-in JAR are based on Ant code developed by The Apache Software Foundation and shall be defined as the &quot;Ant-Derived Work&quot;:</p>
+
+<ul>
+ <li>org.eclipse.ant.internal.core.ant.InternalAntRunner</li>
+ <li>org.eclipse.ant.internal.core.ant.InternalProject</li>
+</ul>
+
+<p>The binary code for the Ant-Derived Work is located in lib/antsupportlib.jar and the source code is located in lib/antsupportlibsrc.zip.</p>
+
+<p>Your use of the Ant-Derived Work is subject to the terms and conditions of the Apache Software License 2.0. A copy of the license is contained
+in the file <a href="about_files/asl-v20.txt" target="_blank">about_files/asl-v20.txt</a> and is also available at <a href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">http://www.apache.org/licenses/LICENSE-2.0.html</a>.
+
+<p>The names &quot;Ant&quot; and &quot;Apache Software Foundation&quot; must not be used to endorse or promote products derived from this
+software without prior written permission. For written permission, please contact <a href="mailto:apache@apache.org">apache@apache.org</a>.</p>
+
+<p>The Apache attribution <a href="about_files/NOTICE" target="_blank">NOTICE</a> file is included with the Content in accordance with 4d of the Apache License, Version 2.0.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/about_files/NOTICE b/ant/org.eclipse.ant.core/about_files/NOTICE
new file mode 100644
index 000000000..1fb6dde47
--- /dev/null
+++ b/ant/org.eclipse.ant.core/about_files/NOTICE
@@ -0,0 +1,15 @@
+ =========================================================================
+ == NOTICE file corresponding to the section 4 d of ==
+ == the Apache License, Version 2.0, ==
+ == in this case for the Apache Ant distribution. ==
+ =========================================================================
+
+ This product includes software developed by
+ The Apache Software Foundation (http://www.apache.org/).
+
+ This product includes also software developed by :
+ - the W3C consortium (http://www.w3c.org) ,
+ - the SAX project (http://www.saxproject.org)
+
+ Please read the different LICENSE files present in the root directory of
+ this distribution.
diff --git a/ant/org.eclipse.ant.core/about_files/asl-v20.txt b/ant/org.eclipse.ant.core/about_files/asl-v20.txt
new file mode 100644
index 000000000..d64569567
--- /dev/null
+++ b/ant/org.eclipse.ant.core/about_files/asl-v20.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/ant/org.eclipse.ant.core/build.properties b/ant/org.eclipse.ant.core/build.properties
new file mode 100644
index 000000000..faf3b08ea
--- /dev/null
+++ b/ant/org.eclipse.ant.core/build.properties
@@ -0,0 +1,25 @@
+###############################################################################
+# Copyright (c) 2000, 2007 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+source.. =src/
+source.lib/antsupportlib.jar=src_ant/
+src.includes = about.html,\
+ schema/,\
+ about_files/
+bin.includes = plugin.xml,\
+ plugin.properties,\
+ about.html,\
+ .,\
+ lib/*.jar,\
+ META-INF/,\
+ about_files/
+jars.compile.order=.,lib/antsupportlib.jar
+jars.extra.classpath=platform:/plugin/org.apache.ant/lib/ant.jar,platform:/plugin/org.apache.ant/lib/ant-launcher.jar
+javadoc.packages=org.eclipse.* \ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/buildfiles/exportplugin.xml b/ant/org.eclipse.ant.core/buildfiles/exportplugin.xml
new file mode 100644
index 000000000..f0df5c37d
--- /dev/null
+++ b/ant/org.eclipse.ant.core/buildfiles/exportplugin.xml
@@ -0,0 +1,37 @@
+<!-- Export a jar of .class files for the org.eclipse.ant.core Eclipse plug-in
+ along with other important plugin files to the "plugin-export" subdirectory
+ of the target Eclipse installation -->
+<project name="Export ant.core" default="export" basedir="..">
+
+ <!-- Set the timestamp and important properties -->
+ <target name="init">
+ <tstamp/>
+ <property name="destdir" value="../../plugin-export" />
+ <property name="dest" value="${destdir}/org.eclipse.ant.core_3.0.0" />
+ </target>
+
+ <!-- Create the jar of .class files, and copy other important files to export dir -->
+ <target name="export" depends="init">
+ <mkdir dir="${destdir}" />
+ <delete dir="${dest}" />
+ <mkdir dir="${dest}" />
+ <delete dir="${dest}/lib"/>
+ <mkdir dir="${dest}/lib"/>
+ <jar destfile="${dest}/antsupport.jar">
+ <fileset dir="bin">
+ <exclude name="org/eclipse/ant/internal/core/ant/*"/>
+ </fileset>
+ </jar>
+ <!-- Create the source zip -->
+ <zip destfile="${dest}/antsupportsrc.zip">
+ <fileset dir="src"/>
+ </zip>
+ <copy file="plugin.xml" todir="${dest}"/>
+ <copy file="plugin.properties" todir="${dest}"/>
+ <copy file=".classpath" todir="${dest}"/>
+ <copy file=".options" todir="${dest}"/>
+ <ant antfile="buildfiles/buildExtraJAR.xml" target="build"/>
+ <copy file="lib/antsupportlib.jar" todir="${dest}/lib"/>
+ </target>
+
+</project>
diff --git a/ant/org.eclipse.ant.core/plugin.properties b/ant/org.eclipse.ant.core/plugin.properties
new file mode 100644
index 000000000..1d3d526ac
--- /dev/null
+++ b/ant/org.eclipse.ant.core/plugin.properties
@@ -0,0 +1,19 @@
+###############################################################################
+# Copyright (c) 2000, 2005 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+pluginName = Ant Build Tool Core
+providerName = Eclipse.org
+classpathName = Extra Ant Classpath Entry Definitions
+tasksName = Ant Task Definitions
+typesName = Ant Type Definitions
+propertiesName = Ant Properties Definitions
+
+antBuildFileContentType.name= Ant Buildfile
diff --git a/ant/org.eclipse.ant.core/schema/antProperties.exsd b/ant/org.eclipse.ant.core/schema/antProperties.exsd
new file mode 100644
index 000000000..50a812d46
--- /dev/null
+++ b/ant/org.eclipse.ant.core/schema/antProperties.exsd
@@ -0,0 +1,149 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ant.core">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ant.core" id="antProperties" name="Ant Properties"/>
+ </appInfo>
+ <documentation>
+ Allows plug-ins to define Ant properties for use in Ant build files.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="antProperty" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="antProperty">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ The name of the property.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="value" type="string">
+ <annotation>
+ <documentation>
+ The value of the property. If a value is provided here, the &quot;class&quot; attribute is ignored.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string">
+ <annotation>
+ <documentation>
+ If there is no &apos;value&apos; attribute provided, this class is called to return the dynamic value for the Ant property. If &lt;code&gt;null&lt;/code&gt; is returned, the value is not set.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.ant.core.IAntPropertyValueProvider"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="headless" type="boolean">
+ <annotation>
+ <documentation>
+ indicates whether this property is suitable for use in a &quot;headless&quot; Ant environment. If running headless and the attribute is &quot;false&quot;, the property will not be set and any specified &lt;code&gt;org.eclipse.ant.core.IAntPropertyValueProvider&lt;/code&gt; will not be instantiated. The implied value is &lt;code&gt;true&lt;/code&gt;, when not specified.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="eclipseRuntime" type="boolean">
+ <annotation>
+ <documentation>
+ indicates whether this property should only be considered when run in the same VM as Eclipse. The implied value is &lt;code&gt;true&lt;/code&gt;, when not specified.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="since"/>
+ </appInfo>
+ <documentation>
+ 3.0
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of an Ant properties extension point:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ant.core.antProperties&quot;&gt;
+ &lt;antProperty name=&quot;eclipse.home&quot;
+ class=&quot;org.eclipse.ant.internal.core.AntPropertyValueProvider&quot;/&gt;
+ &lt;antProperty name=&quot;eclipse.running&quot;
+ value=&quot;true&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ The class named in the &lt;samp&gt;class&lt;/samp&gt; property must implement the &lt;samp&gt;org.eclipse.ant.core.IAntPropertyValueProvider&lt;/samp&gt; interface.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The platform uses this mechanism to set the Ant property eclipse.home to the Eclipse installation directory and to set the eclipse.running property.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2000, 2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which
+accompanies this distribution, and is available at
+&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/ant/org.eclipse.ant.core/schema/antTypes.exsd b/ant/org.eclipse.ant.core/schema/antTypes.exsd
new file mode 100644
index 000000000..9c6d31d0b
--- /dev/null
+++ b/ant/org.eclipse.ant.core/schema/antTypes.exsd
@@ -0,0 +1,141 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ant.core">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ant.core" id="antTypes" name="Ant Types"/>
+ </appInfo>
+ <documentation>
+ Allows plug-ins to define arbitrary Ant datatypes for
+use by the Ant infrastructure. The standard Ant
+infrastructure allows for the addition of arbitrary
+datatypes. Unfortunately, it is unlikely that the
+Ant Core plug-in would have the classes required
+by these datatypes on its classpath (or that of any
+of its prerequisites). To address this, clients
+should define an extension which plugs into this
+extension-point and maps a datatype name onto a class.
+The Ant plug-in can then request that the declaring
+plug-in load the specified class.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="antType" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="antType">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ name of the type to be defined
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="uri" type="string">
+ <annotation>
+ <documentation>
+ The uri that this definition should live in. Only used if using Ant newer than 1.6.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ the fully qualified name of a Java class implementing
+the datatype. Generally this class must be a subclass of
+&lt;code&gt;org.apache.tools.ant.types.DataType&lt;/code&gt;.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.apache.tools.ant.types.DataType"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="library" type="string" use="required">
+ <annotation>
+ <documentation>
+ a path relative to the plug-in install location for the library containing the type.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="resource"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="headless" type="boolean">
+ <annotation>
+ <documentation>
+ indicates whether this type is suitable for use in a &quot;headless&quot; Ant environment. If running headless and the attribute is &lt;code&gt;false&lt;/code&gt;, the type will not be loaded or defined. As well, the plugin class loader will not be added as a parent classloader to the Ant classloader. The implied value is &lt;code&gt;true&lt;/code&gt;, when not specified.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="eclipseRuntime" type="boolean">
+ <annotation>
+ <documentation>
+ indicates whether this type requires an Eclipse runtime (i.e. must be run in the same VM as Eclipse). The implied value is &lt;code&gt;true&lt;/code&gt;, when not specified.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of an Ant types extension point:
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ant.core.antTypes&quot;&gt;
+ &lt;antType name=&quot;coolType&quot; class=&quot;com.example.CoolType&quot; library=&quot;lib/antSupport.jar&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2000, 2006 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which
+accompanies this distribution, and is available at
+&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/ant/org.eclipse.ant.core/schema/extraClasspathEntries.exsd b/ant/org.eclipse.ant.core/schema/extraClasspathEntries.exsd
new file mode 100644
index 000000000..755797716
--- /dev/null
+++ b/ant/org.eclipse.ant.core/schema/extraClasspathEntries.exsd
@@ -0,0 +1,113 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ant.core">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.ant.core" id="extraClasspathEntries" name="Extra Ant Classpath Entries"/>
+ </appInfo>
+ <documentation>
+ Allows plug-ins to define arbitrary JARs for use by the Ant infrastructure.
+These JARs are put into the Ant classpath at runtime. Besides
+the JAR, the plug-in classloader of the plug-in providing the
+JAR is also added to the classpath.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="extraClasspathEntry" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="extraClasspathEntry">
+ <complexType>
+ <attribute name="library" type="string" use="required">
+ <annotation>
+ <documentation>
+ a path relative to the plug-in install location for the library.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="resource"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="headless" type="boolean">
+ <annotation>
+ <documentation>
+ indicates whether this extra classpath entry is suitable for use in a &quot;headless&quot; Ant environment. If running headless and the attribute is &lt;code&gt;false&lt;/code&gt;, this entry will not be added to the Ant classpath. As well, the plugin class loader will not be added as a parent classloader to the Ant classloader. The implied value is &lt;code&gt;true&lt;/code&gt;, when not specified.
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="eclipseRuntime" type="boolean">
+ <annotation>
+ <documentation>
+ indicates whether this extra classpath entry should only be considered for builds run in the same VM as Eclipse. The implied value is true, when not specified.
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of an extra classpath entries extension point:
+
+&lt;p&gt;
+&lt;pre&gt;
+ &lt;extension point=&quot;org.eclipse.ant.core.extraClasspathEntries&quot;&gt;
+ &lt;extraClasspathEntry library=&quot;myExtraLibrary.jar&quot;/&gt;
+ &lt;/extension&gt;
+&lt;/pre&gt;
+&lt;/p&gt;
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="implementation"/>
+ </appInfo>
+ <documentation>
+ The platform itself supplies an Ant support jar (antsupportlib.jar).
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made
+available under the terms of the Eclipse Public License v1.0 which
+accompanies this distribution, and is available at
+&lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntCorePlugin.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntCorePlugin.java
new file mode 100644
index 000000000..7f26376b0
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntCorePlugin.java
@@ -0,0 +1,308 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.core;
+
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.ant.internal.core.AntClassLoader;
+import org.eclipse.ant.internal.core.AntCoreUtil;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Plugin;
+import org.eclipse.core.runtime.Status;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The plug-in runtime class for the Ant Core plug-in.
+ * Clients may not instantiate or subclass this class.
+ * @noinstantiate This class is not intended to be instantiated by clients.
+ * @noextend This class is not intended to be subclassed by clients.
+ */
+public class AntCorePlugin extends Plugin {
+
+ /**
+ * Status code indicating an unexpected internal error.
+ * @since 2.1
+ */
+ public static final int INTERNAL_ERROR = 120;
+
+ /**
+ * The single instance of this plug-in runtime class.
+ */
+ private static AntCorePlugin plugin;
+
+ /**
+ * The preferences class for this plug-in.
+ */
+ private AntCorePreferences preferences;
+
+ /**
+ * Unique identifier constant (value <code>"org.eclipse.ant.core"</code>)
+ * for the Ant Core plug-in.
+ */
+ public static final String PI_ANTCORE = "org.eclipse.ant.core"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"antTasks"</code>)
+ * for the Ant tasks extension point.
+ */
+ public static final String PT_TASKS = "antTasks"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"extraClasspathEntries"</code>)
+ * for the extra classpath entries extension point.
+ */
+ public static final String PT_EXTRA_CLASSPATH = "extraClasspathEntries"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"antTypes"</code>)
+ * for the Ant types extension point.
+ */
+ public static final String PT_TYPES = "antTypes"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"antProperties"</code>)
+ * for the Ant properties extension point.
+ *
+ * @since 3.0
+ */
+ public static final String PT_PROPERTIES = "antProperties"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"org.eclipse.ant.core.antBuildFile"</code>)
+ * for the content type of an Ant BuildFile
+ *
+ * @since 3.0
+ */
+ public static final String ANT_BUILDFILE_CONTENT_TYPE = PI_ANTCORE + ".antBuildFile"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"class"</code>)
+ * of a tag that appears in Ant extensions.
+ */
+ public static final String CLASS = "class"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"name"</code>)
+ * of a tag that appears in Ant extensions.
+ */
+ public static final String NAME = "name"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"library"</code>)
+ * of a tag that appears in Ant extensions.
+ */
+ public static final String LIBRARY = "library"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"headless"</code>) of a tag
+ * that appears in Ant extensions.
+ * @since 2.1
+ */
+ public static final String HEADLESS = "headless"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"eclipseRuntime"</code>) of a tag
+ * that appears in Ant extensions.
+ * @since 3.0
+ */
+ public static final String ECLIPSE_RUNTIME = "eclipseRuntime"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"uri"</code>) of a tag
+ * that appears in Ant extensions.
+ * @since 3.2
+ */
+ public static final String URI = "uri"; //$NON-NLS-1$
+
+ /**
+ * Simple identifier constant (value <code>"value"</code>) of a tag
+ * that appears in Ant extensions.
+ * @since 3.0
+ */
+ public static final String VALUE = "value"; //$NON-NLS-1$
+
+ /**
+ * Key to access the <code>IProgressMonitor</code> reference. When a
+ * progress monitor is passed to the <code>AntRunner.run(IProgressMonitor)</code>
+ * method, the object is available as a reference for the current
+ * Ant project.
+ */
+ public static final String ECLIPSE_PROGRESS_MONITOR = "eclipse.progress.monitor"; //$NON-NLS-1$
+
+ /**
+ * Status code indicating an error occurred running a build.
+ * @since 2.1
+ */
+ public static final int ERROR_RUNNING_BUILD = 1;
+
+ /**
+ * Status code indicating an error occurred due to a malformed URL.
+ * @since 2.1
+ */
+ public static final int ERROR_MALFORMED_URL = 2;
+
+ /**
+ * Status code indicating an error occurred as a library was not specified
+ * @since 2.1
+ */
+ public static final int ERROR_LIBRARY_NOT_SPECIFIED = 3;
+
+ /**
+ * Constructs an instance of this plug-in runtime class.
+ * <p>
+ * An instance of this plug-in runtime class is automatically created
+ * when the facilities provided by the Ant Core plug-in are required.
+ * <b>Clients must never explicitly instantiate a plug-in runtime class.</b>
+ * </p>
+ * @since 3.1
+ *
+ */
+ public AntCorePlugin() {
+ plugin = this;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
+ * @since 3.1
+ */
+ public void stop(BundleContext context) throws Exception {
+ super.stop(context);
+ AntCoreUtil.setBundleContext(null);
+ if (preferences != null) {
+ savePluginPreferences();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
+ * @since 3.1
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ AntCoreUtil.setBundleContext(context);
+ }
+
+ /**
+ * Given an extension point name, extract its extensions and return them
+ * as a List.
+ * @param pointName The name of the extension point
+ * @return The list of the extensions
+ */
+ private List extractExtensions(String pointName) {
+ IExtensionPoint extensionPoint= Platform.getExtensionRegistry().getExtensionPoint(AntCorePlugin.PI_ANTCORE, pointName);
+ if (extensionPoint == null) {
+ return null;
+ }
+ IConfigurationElement[] extensions = extensionPoint.getConfigurationElements();
+ return Arrays.asList(extensions);
+ }
+
+ /**
+ * Returns an object representing this plug-in's preferences.
+ *
+ * @return the Ant core object representing the preferences for this plug-in.
+ */
+ public AntCorePreferences getPreferences() {
+ if (preferences == null) {
+ preferences = new AntCorePreferences(extractExtensions(PT_TASKS), extractExtensions(PT_EXTRA_CLASSPATH), extractExtensions(PT_TYPES), extractExtensions(PT_PROPERTIES), false);
+ }
+ return preferences;
+ }
+
+ /**
+ * Set this plug-in's preferences for running headless based on the
+ * headless parameter.
+ * This method is public for testing purposes only. It should not
+ * be called outside of the Ant integration framework.
+ * @param headless Whether or not to mark that the plug-in is running headless or not
+ */
+ public void setRunningHeadless(boolean headless) {
+ preferences = new AntCorePreferences(extractExtensions(PT_TASKS), extractExtensions(PT_EXTRA_CLASSPATH), extractExtensions(PT_TYPES), extractExtensions(PT_PROPERTIES), headless);
+ }
+
+ /**
+ * Returns this plug-in instance.
+ *
+ * @return the single instance of this plug-in runtime class
+ */
+ public static AntCorePlugin getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * Returns a new class loader to use when executing Ant builds.
+ *
+ * @return the new class loader
+ */
+ public ClassLoader getNewClassLoader() {
+ AntCorePreferences corePreferences = getPreferences();
+ return getNewClassLoader(false, corePreferences.getURLs());
+ }
+
+ /**
+ * Returns a new class loader to use when executing Ant builds.
+ * @param urls the URLs that define the classpath of the new classloader
+ * @return the new class loader
+ * @since 3.1
+ */
+ public URLClassLoader getNewClassLoader(URL[] urls) {
+ return getNewClassLoader(false, urls);
+ }
+
+ /**
+ * Returns a new class loader to use when executing Ant builds or
+ * other applications such as parsing or code proposal determination.
+ *
+ * @param allowLoading whether to allow plug-in classloaders associated
+ * with the new classloader to load Apache Ant classes or resources.
+ * @return the new class loader
+ */
+ public ClassLoader getNewClassLoader(boolean allowLoading) {
+ AntCorePreferences corePreferences = getPreferences();
+ URL[] urls = corePreferences.getURLs();
+ return getNewClassLoader(allowLoading, urls);
+ }
+
+ /**
+ * Returns a new class loader to use when executing Ant builds or
+ * other applications such as parsing or code proposal determination.
+ *
+ * @param allowLoading whether to allow plug-in classloaders associated
+ * with the new classloader to load Apache Ant classes or resources.
+ * @param urls the URLs that define the classpath of the new classloader
+ * @return the new class loader
+ * @since 3.1
+ */
+ public URLClassLoader getNewClassLoader(boolean allowLoading, URL[] urls) {
+ AntCorePreferences corePreferences = getPreferences();
+ ClassLoader[] pluginLoaders = corePreferences.getPluginClassLoaders();
+ AntClassLoader loader= new AntClassLoader(urls, pluginLoaders);
+ loader.allowPluginClassLoadersToLoadAnt(allowLoading);
+ return loader;
+ }
+
+ /**
+ * Logs the specified throwable with this plug-in's log.
+ *
+ * @param t throwable to log
+ * @since 2.1
+ */
+ public static void log(Throwable t) {
+ IStatus status= new Status(IStatus.ERROR, PI_ANTCORE, INTERNAL_ERROR, "Error logged from Ant Core: ", t); //$NON-NLS-1$
+ getPlugin().getLog().log(status);
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntSecurityException.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntSecurityException.java
new file mode 100644
index 000000000..1f8674177
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/AntSecurityException.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.core;
+
+
+/**
+ * A security exception that is thrown by the AntSecurityManager if
+ * an Ant task in some way attempts to halt or exit the Java Virtual Machine.
+ *
+ * Clients may instantiate this class; it is not intended to be subclassed.
+ * @since 2.1
+ * @noextend This class is not intended to be subclassed by clients.
+ */
+public class AntSecurityException extends SecurityException {
+
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IAntClasspathEntry.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IAntClasspathEntry.java
new file mode 100644
index 000000000..4420669ae
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/IAntClasspathEntry.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.core;
+
+import java.net.URL;
+
+/**
+ * Represents an Ant classpath entry.
+ * Clients may implement this interface.
+ *
+ * @since 3.0
+ */
+public interface IAntClasspathEntry {
+
+ /**
+ * Returns the label for this classpath entry.
+ * @return the label for this entry.
+ */
+ public String getLabel();
+
+ /**
+ * Returns the URL for this classpath entry or <code>null</code>
+ * if it cannot be resolved.
+ *
+ * @return the url for this classpath entry.
+ */
+ public URL getEntryURL();
+
+ /**
+ * Returns whether this classpath entry requires the Eclipse runtime to be
+ * relevant. Defaults value is <code>true</code>
+ *
+ * @return whether this classpath entry requires the Eclipse runtime
+ */
+ public boolean isEclipseRuntimeRequired();
+}
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Task.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Task.java
new file mode 100644
index 000000000..3d4eca593
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Task.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.core;
+
+
+import org.eclipse.ant.internal.core.AntObject;
+
+/**
+ * Represents an Ant task.
+ * Clients may instantiate this class; it is not intended to be subclassed.
+ * @since 2.1
+ * @noextend This class is not intended to be subclassed by clients.
+ */
+public class Task extends AntObject {
+
+ /**
+ * Returns the name of the task
+ * @return the name of the task
+ */
+ public String getTaskName() {
+ return fName;
+ }
+
+ /**
+ * Sets the name of the task
+ * @param taskName The taskName to set
+ */
+ public void setTaskName(String taskName) {
+ fName= taskName;
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Type.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Type.java
new file mode 100644
index 000000000..429eacdbb
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/Type.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.core;
+
+
+import org.eclipse.ant.internal.core.AntObject;
+
+/**
+ * Represents an Ant type.
+ * Clients may instantiate this class; it is not intended to be subclassed.
+ * @since 2.1
+ * @noextend This class is not intended to be subclassed by clients.
+ */
+public class Type extends AntObject {
+
+ /**
+ * Returns the type name
+ * @return Returns a String
+ */
+ public String getTypeName() {
+ return fName;
+ }
+
+ /**
+ * Sets the taskName.
+ * @param taskName The taskName to set
+ */
+ public void setTypeName(String taskName) {
+ fName = taskName;
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/package.html b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/package.html
new file mode 100644
index 000000000..a931089a5
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/core/package.html
@@ -0,0 +1,14 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>Package-level Javadoc</title>
+</head>
+<body>
+Provides support for running the Ant build tool in the platform.
+<h2>
+Package Specification</h2>
+This package defines a number of task and data types and various infrastructure
+pieces which make Ant in the platform easier and more powerful.
+</body>
+</html>
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AbstractEclipseBuildLogger.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AbstractEclipseBuildLogger.java
new file mode 100644
index 000000000..33c2299d1
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AbstractEclipseBuildLogger.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.core;
+
+import java.util.Map;
+
+import org.eclipse.ant.core.AntCorePlugin;
+
+public abstract class AbstractEclipseBuildLogger {
+
+ /**
+ * Process identifier - used to link the Eclipse Ant build
+ * loggers to a process.
+ */
+ public static final String ANT_PROCESS_ID = AntCorePlugin.PI_ANTCORE + ".ANT_PROCESS_ID"; //$NON-NLS-1$
+
+ protected String fProcessId= null;
+
+ public void configure(Map userProperties) {
+ fProcessId= (String) userProperties.remove(ANT_PROCESS_ID);
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntClassLoader.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntClassLoader.java
new file mode 100644
index 000000000..06a1dc20b
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntClassLoader.java
@@ -0,0 +1,169 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Tom Tromey (tromey@redhat.com) - patch for bug 40972
+ *******************************************************************************/
+package org.eclipse.ant.internal.core;
+
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.List;
+
+public class AntClassLoader extends URLClassLoader {
+
+ private static final String ANT_PACKAGES_PREFIX = "org.apache.tools"; //$NON-NLS-1$
+ private static final String ANT_URL_PREFIX = "org/apache/tools"; //$NON-NLS-1$
+
+ private boolean fAllowPluginLoading = false;
+
+ protected ClassLoader[] fPluginLoaders;
+
+ private ClassLoader fContextClassloader = null;
+
+ public AntClassLoader(URL[] urls, ClassLoader[] pluginLoaders) {
+ super(urls, ClassLoader.getSystemClassLoader());
+ fPluginLoaders = pluginLoaders;
+ }
+
+ /*
+ * @see java.net.URLClassLoader#findClass(java.lang.String)
+ */
+ protected Class findClass(String name) throws ClassNotFoundException {
+ Class result = null;
+ //check whether to load the Apache Ant classes from the plug-in class loaders
+ //or to only load from the URLs specified from the Ant runtime classpath preferences setting
+ if (fAllowPluginLoading || !(name.startsWith(ANT_PACKAGES_PREFIX))) {
+ result = loadClassPlugins(name);
+ }
+
+ if (result != null) {
+ return result;
+ }
+
+ return super.findClass(name);
+ }
+
+ protected Class loadClassPlugins(String name) {
+ //remove this class loader as the context class loader
+ //when loading classes from plug-ins...see bug 94471
+ ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
+ if (fContextClassloader != null) {
+ Thread.currentThread().setContextClassLoader(fContextClassloader);
+ }
+ try {
+ Class result = null;
+ if (fPluginLoaders != null) {
+ for (int i = 0; (i < fPluginLoaders.length) && (result == null); i++) {
+ try {
+ result = fPluginLoaders[i].loadClass(name);
+ } catch (ClassNotFoundException e) {
+ // Ignore exception now. If necessary we'll throw
+ // a ClassNotFoundException in loadClass(String)
+ }
+ }
+ }
+ return result;
+ } finally {
+ Thread.currentThread().setContextClassLoader(originalClassLoader);
+ }
+ }
+
+ /*
+ * @see java.net.URLClassLoader#findResource(java.lang.String)
+ */
+ public URL findResource(String name) {
+ if (fAllowPluginLoading || !(name.startsWith(ANT_URL_PREFIX))) {
+ URL result = findResourcePlugins(name);
+ if (result != null) {
+ return result;
+ }
+ }
+
+ return super.findResource(name);
+ }
+
+ private URL findResourcePlugins(String name) {
+ //remove this class loader as the context class loader
+ //when loading resources from plug-ins...see bug 94471
+ ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
+ if (fContextClassloader != null) {
+ Thread.currentThread().setContextClassLoader(fContextClassloader);
+ }
+ try {
+ URL result = null;
+ if (fPluginLoaders != null) {
+ for (int i = 0; i < fPluginLoaders.length; i++) {
+ result = fPluginLoaders[i].getResource(name);
+ if (result != null) {
+ return result;
+ }
+ }
+ }
+ } finally {
+ Thread.currentThread().setContextClassLoader(originalClassLoader);
+ }
+ return null;
+ }
+
+ /*
+ * @see java.net.URLClassLoader#findResources(java.lang.String)
+ */
+ public Enumeration findResources(String name) throws IOException {
+ ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
+ if (fContextClassloader != null) {
+ Thread.currentThread().setContextClassLoader(fContextClassloader);
+ }
+ List all = new ArrayList();
+ try {
+ if (fAllowPluginLoading || !(name.startsWith(ANT_URL_PREFIX) || name.startsWith(ANT_URL_PREFIX, 1))) {
+ if (fPluginLoaders != null) {
+ Enumeration result = null;
+ for (int i = 0; i < fPluginLoaders.length; i++) {
+ result = fPluginLoaders[i].getResources(name);
+ while (result.hasMoreElements()) {
+ all.add(result.nextElement());
+ }
+ }
+ }
+ }
+
+ Enumeration superResources = super.findResources(name);
+ if (all.isEmpty()) {
+ return superResources;
+ }
+
+ while (superResources.hasMoreElements()) {
+ all.add(superResources.nextElement());
+ }
+ return Collections.enumeration(all);
+ } finally {
+ Thread.currentThread().setContextClassLoader(originalClassLoader);
+ }
+ }
+
+ /**
+ * Sets whether this class loader will allow Apache Ant classes or resources to be found or
+ * loaded from its set of plug-in class loaders.
+ *
+ * @param allowLoading whether or not to allow the plug-in class loaders
+ * to load the Apache Ant classes or resources
+ */
+ public void allowPluginClassLoadersToLoadAnt(boolean allowLoading) {
+ fAllowPluginLoading = allowLoading;
+ }
+
+ public void setPluginContextClassloader(ClassLoader classLoader) {
+ fContextClassloader = classLoader;
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntPropertyValueProvider.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntPropertyValueProvider.java
new file mode 100644
index 000000000..cd28025ef
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntPropertyValueProvider.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2006 BBDO Detroit and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Thierry Lach (thierry.lach@bbdodetroit.com) - initial API and implementation for bug 40502
+ * IBM Corporation - added eclipse.running property, bug 65655
+ *******************************************************************************/
+package org.eclipse.ant.internal.core;
+
+import java.io.File;
+import java.net.URL;
+
+import org.eclipse.ant.core.AntCorePlugin;
+import org.eclipse.ant.core.IAntPropertyValueProvider;
+import org.eclipse.core.runtime.FileLocator;
+
+/**
+ * Dynamic provider for Ant properties.
+ *
+ * Provides the dynamic values for the following Ant properties:
+ *
+ * <ul>
+ * <li><code>eclipse.home</code> - set to the Eclipse installation directory</li>
+ * </ul>
+ * * <ul>
+ * <li><code>eclipse.running</code> - set (to "true") when Eclipse is running</li>
+ * </ul>
+ *
+ * @since 3.0
+ */
+public class AntPropertyValueProvider implements IAntPropertyValueProvider {
+ /**
+ * Returns the dynamic property values for Ant properties.
+ *
+ * @param propertyName The name of the property to resolve the value for
+ * @return The resolved value for the property
+ * @see org.eclipse.ant.core.IAntPropertyValueProvider#getAntPropertyValue(String)
+ */
+ public String getAntPropertyValue(String propertyName) {
+ String value = null;
+ if ("eclipse.running".equals(propertyName)){ //$NON-NLS-1$
+ return "true"; //$NON-NLS-1$
+ } else if ("eclipse.home".equals(propertyName)) { //$NON-NLS-1$
+ try {
+ value = new File(FileLocator.resolve(new URL("platform:/base/")).getPath()).getAbsolutePath(); //$NON-NLS-1$
+ if (value.endsWith("/")) { //$NON-NLS-1$
+ value = value.substring(0, value.length() - 1);
+ }
+ } catch (Exception e) {
+ AntCorePlugin.log(e);
+ }
+ }
+ return value;
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntSecurityManager.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntSecurityManager.java
new file mode 100644
index 000000000..fd79ddeea
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/AntSecurityManager.java
@@ -0,0 +1,373 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.core;
+
+
+import java.io.FileDescriptor;
+import java.net.InetAddress;
+import java.net.SocketPermission;
+import java.security.Permission;
+import java.util.PropertyPermission;
+import org.eclipse.ant.core.AntSecurityException;
+
+/**
+ * A security manager that always throws an <code>AntSecurityException</code>
+ * if the calling thread attempts to cause the Java Virtual Machine to
+ * exit/halt or if the restricted thread attempts to set a System property.
+ * Otherwise this manager just delegates to the pre-existing manager
+ * passed in the constructor or mimics the default security manager behavior
+ */
+public class AntSecurityManager extends SecurityManager {
+
+ private SecurityManager fSecurityManager= null;
+ private Thread fRestrictedThread= null;
+ //ensure that the PropertyPermission class is loaded before we
+ //start checking permissions: bug 85908
+ private static final PropertyPermission fgPropertyPermission= new PropertyPermission("*", "write"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ private boolean fAllowSettingSystemProperties= true;
+
+ public AntSecurityManager(SecurityManager securityManager, Thread restrictedThread, boolean allowSettingProperties) {
+ fSecurityManager= securityManager;
+ fRestrictedThread= restrictedThread;
+ fAllowSettingSystemProperties= allowSettingProperties;
+ }
+
+ public AntSecurityManager(SecurityManager securityManager, Thread restrictedThread) {
+ this(securityManager, restrictedThread, true);
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkExit(int)
+ */
+ public void checkExit(int status) {
+ //no exit allowed from the restricted thread...System.exit is being called
+ //by some ant task...do not want Eclipse to exit if
+ //in the same VM.
+ if (Thread.currentThread() == fRestrictedThread) {
+ throw new AntSecurityException();
+ }
+ if (fSecurityManager != null) {
+ fSecurityManager.checkExit(status);
+ }
+ }
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkAccept(java.lang.String, int)
+ */
+ public void checkAccept(String host, int port) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkAccept(host, port);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkAccess(java.lang.Thread)
+ */
+ public void checkAccess(Thread t) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkAccess(t);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkAccess(java.lang.ThreadGroup)
+ */
+ public void checkAccess(ThreadGroup g) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkAccess(g);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkAwtEventQueueAccess()
+ */
+ public void checkAwtEventQueueAccess() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkAwtEventQueueAccess();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkConnect(java.lang.String, int, java.lang.Object)
+ */
+ public void checkConnect(String host, int port, Object context) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkConnect(host, port, context);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkConnect(java.lang.String, int)
+ */
+ public void checkConnect(String host, int port) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkConnect(host, port);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkCreateClassLoader()
+ */
+ public void checkCreateClassLoader() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkCreateClassLoader();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkDelete(java.lang.String)
+ */
+ public void checkDelete(String file) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkDelete(file);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkExec(java.lang.String)
+ */
+ public void checkExec(String cmd) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkExec(cmd);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkLink(java.lang.String)
+ */
+ public void checkLink(String lib) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkLink(lib);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkListen(int)
+ */
+ public void checkListen(int port) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkListen(port);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkMemberAccess(java.lang.Class, int)
+ */
+ public void checkMemberAccess(Class clazz, int which) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkMemberAccess(clazz, which);
+ }
+ }
+
+ /**
+ * @see java.lang.SecurityManager#checkMulticast(java.net.InetAddress, byte)
+ * @deprecated
+ */
+ public void checkMulticast(InetAddress maddr, byte ttl) {
+ if (fSecurityManager != null) {
+ String host = maddr.getHostAddress();
+ if (!host.startsWith("[") && host.indexOf(':') != -1) { //$NON-NLS-1$
+ host = "[" + host + "]"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ checkPermission(new SocketPermission(host, "accept,connect")); //$NON-NLS-1$
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkMulticast(java.net.InetAddress)
+ */
+ public void checkMulticast(InetAddress maddr) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkMulticast(maddr);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPackageAccess(java.lang.String)
+ */
+ public void checkPackageAccess(String pkg) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPackageAccess(pkg);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPackageDefinition(java.lang.String)
+ */
+ public void checkPackageDefinition(String pkg) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPackageDefinition(pkg);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPermission(java.security.Permission, java.lang.Object)
+ */
+ public void checkPermission(Permission perm, Object context) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPermission(perm, context);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPermission(java.security.Permission)
+ */
+ public void checkPermission(Permission perm) {
+ if (!fAllowSettingSystemProperties && fgPropertyPermission.implies(perm) && fRestrictedThread == Thread.currentThread()) {
+ //attempting to write a system property
+ throw new AntSecurityException();
+ }
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPermission(perm);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPrintJobAccess()
+ */
+ public void checkPrintJobAccess() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPrintJobAccess();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPropertiesAccess()
+ */
+ public void checkPropertiesAccess() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPropertiesAccess();
+ }
+ super.checkPropertiesAccess();
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPropertyAccess(java.lang.String)
+ */
+ public void checkPropertyAccess(String key) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPropertyAccess(key);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkRead(java.io.FileDescriptor)
+ */
+ public void checkRead(FileDescriptor fd) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkRead(fd);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkRead(java.lang.String, java.lang.Object)
+ */
+ public void checkRead(String file, Object context) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkRead(file, context);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkRead(java.lang.String)
+ */
+ public void checkRead(String file) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkRead(file);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkSecurityAccess(java.lang.String)
+ */
+ public void checkSecurityAccess(String target) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkSecurityAccess(target);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkSetFactory()
+ */
+ public void checkSetFactory() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkSetFactory();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkSystemClipboardAccess()
+ */
+ public void checkSystemClipboardAccess() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkSystemClipboardAccess();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkTopLevelWindow(java.lang.Object)
+ */
+ public boolean checkTopLevelWindow(Object window) {
+ if (fSecurityManager != null) {
+ return fSecurityManager.checkTopLevelWindow(window);
+ }
+ return super.checkTopLevelWindow(window);
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkWrite(java.io.FileDescriptor)
+ */
+ public void checkWrite(FileDescriptor fd) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkWrite(fd);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkWrite(java.lang.String)
+ */
+ public void checkWrite(String file) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkWrite(file);
+ }
+ }
+
+ /**
+ * @see java.lang.SecurityManager#getInCheck()
+ * @deprecated
+ */
+ public boolean getInCheck() {
+ if (fSecurityManager != null) {
+ return fSecurityManager.getInCheck();
+ }
+ return super.getInCheck();
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#getSecurityContext()
+ */
+ public Object getSecurityContext() {
+ if (fSecurityManager != null) {
+ return fSecurityManager.getSecurityContext();
+ }
+ return super.getSecurityContext();
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#getThreadGroup()
+ */
+ public ThreadGroup getThreadGroup() {
+ if (fSecurityManager != null) {
+ fSecurityManager.getThreadGroup();
+ }
+ return super.getThreadGroup();
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/InternalCoreAntMessages.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/InternalCoreAntMessages.java
new file mode 100644
index 000000000..22f65e636
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/InternalCoreAntMessages.java
@@ -0,0 +1,35 @@
+/**********************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.ant.internal.core;
+
+import org.eclipse.osgi.util.NLS;
+
+public class InternalCoreAntMessages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.ant.internal.core.InternalCoreAntMessages";//$NON-NLS-1$
+
+ public static String AntCorePreferences_Malformed_URL__1;
+ public static String AntCorePreferences_Library_not_specified_for___0__4;
+ public static String AntCorePreferences_No_library_for_task;
+ public static String AntCorePreferences_No_library_for_type;
+ public static String AntCorePreferences_8;
+ public static String AntCorePreferences_6;
+ public static String AntCorePreferences_0;
+ public static String AntCorePreferences_1;
+
+ public static String AntRunner_Could_not_find_one_or_more_classes__Please_check_the_Ant_classpath__1;
+ public static String AntRunner_Could_not_find_one_or_more_classes__Please_check_the_Ant_classpath__2;
+ public static String AntRunner_Build_Failed__3;
+ public static String AntRunner_Already_in_progess;
+
+ static {
+ // load message values from bundle file
+ NLS.initializeMessages(BUNDLE_NAME, InternalCoreAntMessages.class);
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/InternalCoreAntMessages.properties b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/InternalCoreAntMessages.properties
new file mode 100644
index 000000000..a3ffd92c5
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/InternalCoreAntMessages.properties
@@ -0,0 +1,24 @@
+###############################################################################
+# Copyright (c) 2000, 2006 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+AntCorePreferences_Malformed_URL__1=Malformed URL.
+AntCorePreferences_Library_not_specified_for___0__4=Library not specified for: {0}
+AntCorePreferences_No_library_for_task=The library \"{0}\" specified from \"{1}\" for the antTasks extension does not exist
+AntCorePreferences_No_library_for_type=The library \"{0}\" specified from \"{1}\" for the antTypes extension of does not exist
+AntCorePreferences_8=The library \"{0}\" specified from \"{1}\" for the antTasks or antTypes extension does not exist
+AntCorePreferences_6=The library \"{0}\" specified from \"{1}\" for the extraClasspathEntries extension does not exist
+AntCorePreferences_0=Exception parsing bundle manifest file.
+AntCorePreferences_1=Host not found for the fragment: {0}
+
+AntRunner_Could_not_find_one_or_more_classes__Please_check_the_Ant_classpath__1=Could not find one or more classes. Please check the Ant classpath.
+AntRunner_Could_not_find_one_or_more_classes__Please_check_the_Ant_classpath__2=Could not find one or more classes: \"{0}\". Please check the Ant classpath.
+AntRunner_Build_Failed__3=BUILD FAILED
+AntRunner_Already_in_progess=Ant build {0} already in progress. Concurrent Ant builds are possible if you specify to build in a separate JRE.
diff --git a/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/contentDescriber/AntBuildfileContentDescriber.java b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/contentDescriber/AntBuildfileContentDescriber.java
new file mode 100644
index 000000000..1cedf9dab
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src/org/eclipse/ant/internal/core/contentDescriber/AntBuildfileContentDescriber.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Philippe Ombredanne (pombredanne@nexb.com) - bug 125367
+ *******************************************************************************/
+package org.eclipse.ant.internal.core.contentDescriber;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExecutableExtension;
+import org.eclipse.core.runtime.content.IContentDescription;
+import org.eclipse.core.runtime.content.XMLContentDescriber;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+/**
+ * A content describer for Ant buildfiles.
+ * <p>
+ * If project top level element is found
+ * then if:
+ * target sub-elements are found returns VALID
+ * default attribute is found returns VALID
+ * some other likely Ant element is found (classpath, import, macrodef, path, property, taskdef, typedef) returns VALID
+ * else:
+ * returns INDETERMINATE
+ * else
+ * returns INDETERMINATE
+ * </p>
+ *
+ * @since 3.1
+ */
+public final class AntBuildfileContentDescriber extends XMLContentDescriber implements IExecutableExtension {
+
+ /* (Intentionally not included in javadoc)
+ * Determines the validation status for the given contents.
+ *
+ * @param contents the contents to be evaluated
+ * @return one of the following:<ul>
+ * <li><code>VALID</code></li>,
+ * <li><code>INVALID</code></li>,
+ * <li><code>INDETERMINATE</code></li>
+ * </ul>
+ * @throws IOException
+ */
+ private int checkCriteria(InputSource contents) throws IOException {
+ AntHandler antHandler = new AntHandler();
+ try {
+ if (!antHandler.parseContents(contents)) {
+ return INDETERMINATE;
+ }
+ } catch (SAXException e) {
+ // we may be handed any kind of contents... it is normal we fail to parse
+ return INDETERMINATE;
+ } catch (ParserConfigurationException e) {
+ // some bad thing happened - force this describer to be disabled
+ String message = "Internal Error: XML parser configuration error during content description for Ant buildfiles"; //$NON-NLS-1$
+ throw new RuntimeException(message);
+ }
+ // Check to see if we matched our criteria.
+ if (antHandler.hasRootProjectElement()) {
+ if (antHandler.hasProjectDefaultAttribute() || antHandler.hasTargetElement() || antHandler.hasAntElement()) {
+ //project and default attribute or project and target element(s)
+ //or project and top level ant element(s) (classpath, import, macrodef, path, property, taskdef, typedef)
+ return VALID;
+ }
+ //only a top level project element...maybe an Ant buildfile
+ return INDETERMINATE;
+ }
+
+ return INDETERMINATE;
+ }
+
+ /* (Intentionally not included in javadoc)
+ * @see IContentDescriber#describe(InputStream, IContentDescription)
+ */
+ public int describe(InputStream contents, IContentDescription description) throws IOException {
+ // call the basic XML describer to do basic recognition
+ if (super.describe(contents, description) == INVALID) {
+ return INVALID;
+ }
+ // super.describe will have consumed some chars, need to rewind
+ contents.reset();
+ // Check to see if we matched our criteria.
+ return checkCriteria(new InputSource(contents));
+ }
+
+ /* (Intentionally not included in javadoc)
+ * @see IContentDescriber#describe(Reader, IContentDescription)
+ */
+ public int describe(Reader contents, IContentDescription description) throws IOException {
+ // call the basic XML describer to do basic recognition
+ if (super.describe(contents, description) == INVALID) {
+ return INVALID;
+ }
+ // super.describe will have consumed some chars, need to rewind
+ contents.reset();
+ // Check to see if we matched our criteria.
+ return checkCriteria(new InputSource(contents));
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement, java.lang.String, java.lang.Object)
+ */
+ public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/src_ant/META-INF/eclipse.inf b/ant/org.eclipse.ant.core/src_ant/META-INF/eclipse.inf
new file mode 100644
index 000000000..b4df3ab63
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/META-INF/eclipse.inf
@@ -0,0 +1 @@
+jarprocessor.exclude.sign=true \ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/DemuxInputStreamSetter.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/DemuxInputStreamSetter.java
new file mode 100644
index 000000000..78e824d0c
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/DemuxInputStreamSetter.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.core.ant;
+
+
+import org.apache.tools.ant.DemuxInputStream;
+import org.apache.tools.ant.Project;
+
+/**
+ * This class exists so that the Ant integration has backwards compatibility
+ * with Ant releases previous to 1.6. DemuxInputStream is a new class to Ant 1.6.
+ */
+class DemuxInputStreamSetter {
+
+ protected void remapSystemIn(Project project) {
+ System.setIn(new DemuxInputStream(project));
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseAntMain.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseAntMain.java
new file mode 100644
index 000000000..b50b591ac
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseAntMain.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.core.ant;
+
+import java.util.Iterator;
+
+import org.apache.tools.ant.BuildListener;
+import org.apache.tools.ant.Main;
+import org.apache.tools.ant.Project;
+
+public class EclipseAntMain extends Main {
+
+ private Project fEclipseAntProject;
+
+ public EclipseAntMain(Project eclipseAntProject) {
+ super();
+ fEclipseAntProject = eclipseAntProject;
+ }
+
+ public static void run(String[] args, Project eclipseAntProject) {
+ Main projectHelpMain = new EclipseAntMain(eclipseAntProject);
+ projectHelpMain.startAnt(args, null, null);
+ }
+
+ /*
+ * @see org.apache.tools.ant.Main#exit(int)
+ */
+ protected void exit(int exitCode) {
+ //disallow system exit
+ }
+
+ /*
+ * @see org.apache.tools.ant.Main#addBuildListeners(org.apache.tools.ant.Project)
+ */
+ protected void addBuildListeners(Project project) {
+ Iterator listeners = fEclipseAntProject.getBuildListeners().iterator();
+ while (listeners.hasNext()) {
+ project.addBuildListener((BuildListener) listeners.next());
+ }
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseDefaultExecutor.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseDefaultExecutor.java
new file mode 100644
index 000000000..0daa35a7c
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseDefaultExecutor.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.core.ant;
+
+import java.util.Arrays;
+import java.util.Vector;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Executor;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.helper.DefaultExecutor;
+
+public class EclipseDefaultExecutor extends DefaultExecutor {
+
+ private static final EclipseSingleCheckExecutor SUB_EXECUTOR = new EclipseSingleCheckExecutor();
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Executor#executeTargets(org.apache.tools.ant.Project, java.lang.String[])
+ */
+ public void executeTargets(Project project, String[] targetNames) throws BuildException {
+ Vector v= new Vector();
+ v.addAll(Arrays.asList(targetNames));
+ project.addReference("eclipse.ant.targetVector", v); //$NON-NLS-1$
+ super.executeTargets(project, targetNames);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Executor#getSubProjectExecutor()
+ */
+ public Executor getSubProjectExecutor() {
+ return SUB_EXECUTOR;
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseMainHelper.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseMainHelper.java
new file mode 100644
index 000000000..64525022d
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseMainHelper.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.core.ant;
+
+import org.apache.tools.ant.Project;
+
+public class EclipseMainHelper {
+
+ protected void runProjectHelp(String buildFileLocation, Project eclipseAntProject) {
+ EclipseAntMain.run(new String[]{"-f", buildFileLocation, "-p"}, eclipseAntProject); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ protected void runUsage(String buildFileLocation, Project eclipseAntProject) {
+ EclipseAntMain.run(new String[]{"-f", buildFileLocation, "-h"}, eclipseAntProject); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseSingleCheckExecutor.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseSingleCheckExecutor.java
new file mode 100644
index 000000000..e6549b62e
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/EclipseSingleCheckExecutor.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.core.ant;
+
+import java.util.Arrays;
+import java.util.Vector;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Executor;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.helper.SingleCheckExecutor;
+
+public class EclipseSingleCheckExecutor extends SingleCheckExecutor {
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Executor#executeTargets(org.apache.tools.ant.Project, java.lang.String[])
+ */
+ public void executeTargets(Project project, String[] targetNames) throws BuildException {
+ Vector v= new Vector();
+ v.addAll(Arrays.asList(targetNames));
+ project.addReference("eclipse.ant.targetVector", v); //$NON-NLS-1$
+ super.executeTargets(project, targetNames);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Executor#getSubProjectExecutor()
+ */
+ public Executor getSubProjectExecutor() {
+ return this;
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ExecutorSetter.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ExecutorSetter.java
new file mode 100644
index 000000000..03759f20e
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/ExecutorSetter.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.core.ant;
+
+import org.apache.tools.ant.Executor;
+import org.apache.tools.ant.Project;
+
+/**
+ * This class exists so that the Ant integration has backwards compatibility
+ * with Ant releases previous to 1.6.3. Executors are a new feature of Ant 1.6.3.
+ */
+public class ExecutorSetter {
+
+ protected void setExecutor(Project project) {
+ Executor executor= new EclipseDefaultExecutor();
+ project.setExecutor(executor);
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/FailInputHandler.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/FailInputHandler.java
new file mode 100644
index 000000000..52155b315
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/FailInputHandler.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.core.ant;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.tools.ant.input.DefaultInputHandler;
+
+public class FailInputHandler extends DefaultInputHandler {
+
+ protected InputStream getInputStream() {
+ //ensure any attempts to read input fail
+ return new InputStream(){
+ public int read() throws IOException {
+ throw new IOException();
+ }
+ };
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InputHandlerSetter.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InputHandlerSetter.java
new file mode 100644
index 000000000..42965b924
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InputHandlerSetter.java
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.core.ant;
+
+
+import java.text.MessageFormat; // can't use ICU in ant
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.input.DefaultInputHandler;
+import org.apache.tools.ant.input.InputHandler;
+
+/**
+ * This class exists so that the Ant integration has backwards compatibility
+ * with Ant releases previous to 1.5. InputHandlers are a new feature of Ant 1.5.
+ */
+class InputHandlerSetter {
+
+ protected void setInputHandler(Project project, String inputHandlerClassname) {
+ InputHandler handler = null;
+ if (inputHandlerClassname == null) {
+ handler = new DefaultInputHandler();
+ } else {
+ try {
+ handler = (InputHandler)(Class.forName(inputHandlerClassname).newInstance());
+ } catch (ClassCastException e) {
+ String msg = MessageFormat.format(InternalAntMessages.InternalAntRunner_handler_does_not_implement_InputHandler5, new String[]{inputHandlerClassname});
+ throw new BuildException(msg, e);
+ } catch (Exception e) {
+ String msg = MessageFormat.format(InternalAntMessages.InternalAntRunner_Unable_to_instantiate_input_handler_class, new String[]{inputHandlerClassname, e.getClass().getName()});
+ throw new BuildException(msg, e);
+ }
+ }
+ project.setInputHandler(handler);
+ project.setProjectReference(handler);
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject.java
new file mode 100644
index 000000000..8a0aab2c3
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject.java
@@ -0,0 +1,178 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - derived implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.core.ant;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.text.MessageFormat; // can't use ICU, ant build script
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.Properties;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.ProjectComponent;
+
+/**
+ * A subclass of Project to facilitate "faster" parsing with
+ * less garbage generated. This class is not used on Ant 1.6 and newer
+ * due to the improvements in lazy loading of these Ant versions.
+ *
+ * Only three tasks are loaded (property, taskdef and
+ * typedef: three tasks that can be defined outside of a target on Ant 1.5.1 or older).
+ *
+ * Datatypes are loaded if requested.
+ *
+ * Derived from the original Ant Project class
+ */
+public class InternalProject extends Project {
+
+ private Hashtable typeNameToClass = null;
+
+ public InternalProject() {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Project#init()
+ */
+ public void init() throws BuildException {
+ setJavaVersionProperty();
+
+ try {
+ Class taskClass = Class.forName("org.apache.tools.ant.taskdefs.Property"); //$NON-NLS-1$
+ addTaskDefinition("property", taskClass); //$NON-NLS-1$
+ taskClass = Class.forName("org.apache.tools.ant.taskdefs.Typedef"); //$NON-NLS-1$
+ addTaskDefinition("typedef", taskClass); //$NON-NLS-1$
+ taskClass = Class.forName("org.apache.tools.ant.taskdefs.Taskdef"); //$NON-NLS-1$
+ addTaskDefinition("taskdef", taskClass); //$NON-NLS-1$
+ } catch (NoClassDefFoundError e) {
+ throw new BuildException(InternalAntMessages.InternalAntRunner_Missing_Class, e);
+ } catch (ClassNotFoundException c) {
+ throw new BuildException(InternalAntMessages.InternalAntRunner_Missing_Class, c);
+ }
+
+ setSystemProperties();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Project#createDataType(java.lang.String)
+ */
+ public Object createDataType(String typeName) throws BuildException {
+ if (typeNameToClass == null) {
+ initializeTypes();
+ }
+ Class typeClass = (Class) typeNameToClass.get(typeName);
+
+ if (typeClass == null) {
+ return null;
+ }
+
+ Throwable thrown = null;
+ try {
+ Constructor ctor = null;
+ boolean noArg = false;
+ // DataType can have a "no arg" constructor or take a single
+ // Project argument.
+ try {
+ ctor = typeClass.getConstructor(new Class[0]);
+ noArg = true;
+ } catch (NoSuchMethodException nse) {
+ ctor = typeClass.getConstructor(new Class[] { Project.class });
+ noArg = false;
+ }
+
+ Object o = null;
+ if (noArg) {
+ o = ctor.newInstance(new Object[0]);
+ } else {
+ o = ctor.newInstance(new Object[] { this });
+ }
+ if (o instanceof ProjectComponent) {
+ ((ProjectComponent) o).setProject(this);
+ }
+ return o;
+ } catch (InvocationTargetException ite) {
+ thrown = ite.getTargetException();
+ } catch (IllegalArgumentException e) {
+ thrown = e;
+ } catch (InstantiationException e) {
+ thrown = e;
+ } catch (IllegalAccessException e) {
+ thrown = e;
+ } catch (NoSuchMethodException nse) {
+ thrown = nse;
+ } catch (NoClassDefFoundError ncdfe) {
+ thrown = ncdfe;
+ }
+ if (thrown != null) {
+ String message= MessageFormat.format(InternalAntMessages.InternalProject_could_not_create_type, new String[]{typeName, thrown.toString()});
+ throw new BuildException(message, thrown);
+ }
+ // this line is actually unreachable
+ return null;
+ }
+
+ /**
+ * Initialize the mapping of data type name to data type classname
+ */
+ private void initializeTypes() {
+ typeNameToClass = new Hashtable(18);
+ String dataDefs = "/org/apache/tools/ant/types/defaults.properties"; //$NON-NLS-1$
+ try {
+ Properties props = new Properties();
+ InputStream in = Project.class.getResourceAsStream(dataDefs);
+ if (in == null) {
+ return;
+ }
+ props.load(in);
+ in.close();
+
+ Enumeration enumeration = props.propertyNames();
+ while (enumeration.hasMoreElements()) {
+ String typeName = (String) enumeration.nextElement();
+ String className = props.getProperty(typeName);
+ try {
+ Class typeClass= Class.forName(className);
+ typeNameToClass.put(typeName, typeClass);
+ } catch (NoClassDefFoundError e) {
+ //ignore
+ } catch (ClassNotFoundException c) {
+ //ignore
+ }
+ }
+ } catch (IOException ioe) {
+ return;
+ }
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Project#getDataTypeDefinitions()
+ */
+ public Hashtable getDataTypeDefinitions() {
+ if (typeNameToClass == null) {
+ initializeTypes();
+ }
+ return typeNameToClass;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Project#addDataTypeDefinition(java.lang.String, java.lang.Class)
+ */
+ public void addDataTypeDefinition(String typeName, Class typeClass) {
+ getDataTypeDefinitions();
+ typeNameToClass.put(typeName, typeClass);
+ }
+}
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject2.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject2.java
new file mode 100644
index 000000000..85ae17fa1
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/InternalProject2.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.core.ant;
+
+import org.apache.tools.ant.AntClassLoader;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.types.Path;
+
+public class InternalProject2 extends Project {
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Project#createClassLoader(org.apache.tools.ant.types.Path)
+ */
+ public AntClassLoader createClassLoader(Path path) {
+ AntClassLoader loader= super.createClassLoader(path);
+ if (path == null) {
+ //use the "fake" Eclipse runtime classpath for Ant
+ loader.setClassPath(Path.systemClasspath);
+ }
+
+ return loader;
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/NullInputHandler.java b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/NullInputHandler.java
new file mode 100644
index 000000000..c6609622c
--- /dev/null
+++ b/ant/org.eclipse.ant.core/src_ant/org/eclipse/ant/internal/core/ant/NullInputHandler.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.core.ant;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.input.InputHandler;
+import org.apache.tools.ant.input.InputRequest;
+
+/**
+ * A input handler that does nothing with input requests
+ * Used to ensure we do not block while retrieving targets from an Ant buildfile
+ * that has an input task in the top level implicit target
+ */
+public class NullInputHandler implements InputHandler {
+
+ public NullInputHandler() {
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.input.InputHandler#handleInput(org.apache.tools.ant.input.InputRequest)
+ */
+ public void handleInput(InputRequest request) throws BuildException {
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/.classpath b/ant/org.eclipse.ant.launching/.classpath
new file mode 100644
index 000000000..a8eb00e30
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/.classpath
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" output="loggers_bin" path="loggers"/>
+ <classpathentry kind="src" output="common_bin" path="common"/>
+ <classpathentry kind="src" output="remote_bin" path="remote"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/ant/org.eclipse.ant.launching/.externalToolBuilders/build common debug [Builder].launch b/ant/org.eclipse.ant.launching/.externalToolBuilders/build common debug [Builder].launch
new file mode 100644
index 000000000..2f1ec55b7
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/.externalToolBuilders/build common debug [Builder].launch
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfigurationWorkingSet editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot; factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1254539808328_112&quot; label=&quot;working set&quot; name=&quot;working set&quot;&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.launching/lib&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ant.launching/buildfiles/buildCommonDebug.xml"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ant.launching"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfigurationWorkingSet editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot; factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1254539834953_113&quot; label=&quot;workingSet&quot; name=&quot;workingSet&quot;&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.launching/common&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.ant.launching/buildfiles/buildCommonDebug.xml}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/ant/org.eclipse.ant.launching/.externalToolBuilders/build loggers [Builder].launch b/ant/org.eclipse.ant.launching/.externalToolBuilders/build loggers [Builder].launch
new file mode 100644
index 000000000..ec718d8f8
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/.externalToolBuilders/build loggers [Builder].launch
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<booleanAttribute key="org.eclipse.ant.uiSET_INPUTHANDLER" value="false"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfigurationWorkingSet editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot; factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1254539604968_29&quot; label=&quot;working set&quot; name=&quot;working set&quot;&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.launching/lib&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ant.launching/buildfiles/buildLoggers.xml"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ant.launching"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfigurationWorkingSet editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot; factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1254539671875_56&quot; label=&quot;workingSet&quot; name=&quot;workingSet&quot;&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.launching/loggers&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.ant.launching/buildfiles/buildLoggers.xml}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/ant/org.eclipse.ant.launching/.externalToolBuilders/build remote support [Builder].launch b/ant/org.eclipse.ant.launching/.externalToolBuilders/build remote support [Builder].launch
new file mode 100644
index 000000000..c56eb96fa
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/.externalToolBuilders/build remote support [Builder].launch
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1254617191468_44&quot; label=&quot;working set&quot; name=&quot;working set&quot;&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.launching/lib&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.ant.launching/buildfiles/buildRemote.xml"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.ant.launching"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; id=&quot;1254617206453_45&quot; label=&quot;workingSet&quot; name=&quot;workingSet&quot;&gt;&#13;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.launching/remote&quot; type=&quot;2&quot;/&gt;&#13;&#10;&lt;/launchConfigurationWorkingSet&gt;}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.ant.launching/buildfiles/buildRemote.xml}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/ant/org.eclipse.ant.launching/.project b/ant/org.eclipse.ant.launching/.project
new file mode 100644
index 000000000..5f704efb4
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/.project
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ant.launching</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>auto,full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value>&lt;project&gt;/.externalToolBuilders/build loggers [Builder].launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>auto,full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value>&lt;project&gt;/.externalToolBuilders/build common debug [Builder].launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <triggers>auto,full,incremental,</triggers>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value>&lt;project&gt;/.externalToolBuilders/build remote support [Builder].launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/ant/org.eclipse.ant.launching/about.html b/ant/org.eclipse.ant.launching/about.html
new file mode 100644
index 000000000..599392518
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/about.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>October 8, 2009</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+<h3>Third Party Content</h3>
+
+<p>The Content includes items that have been sourced from third parties as set out below. If you
+did not receive this Content directly from the Eclipse Foundation, the following is provided
+for informational purposes only, and you should look to the Redistributor&rsquo;s license for
+terms and conditions of use.</p>
+
+<h4>Ant 1.7.1</h4>
+
+<p>The following classes in the plug-in JAR are based on Ant code developed by The Apache Software Foundation and shall be defined as the &quot;Ant-Derived Work&quot;:</p>
+
+<ul>
+ <li>org.eclipse.ant.internal.launching.remote.InternalAntRunner</li>
+</ul>
+
+<p>The object code for InternalAntRunner is located in lib/remote.jar and the source code is located in lib/remotesrc.zip.</p>
+
+<p>Your use of the Ant-Derived Work is subject to the terms and conditions of the Apache Software License 2.0. A copy of the license is contained
+in the file <a href="about_files/asl-v20.txt" target="_blank">about_files/asl-v20.txt</a> and is also available at
+<a href="http://www.apache.org/licenses/LICENSE-2.0.html" target="_blank">http://www.apache.org/licenses/LICENSE-2.0.html</a>.</p>
+
+<p>The names &quot;Ant&quot; and &quot;Apache Software Foundation&quot; must not be used to endorse or promote products derived from this
+software without prior written permission. For written permission, please contact <a href="mailto:apache@apache.org">apache@apache.org</a>.</p>
+
+<p>The Apache attribution <a href="about_files/NOTICE" target="_blank">NOTICE</a> file is included with the Content in accordance with 4d of the Apache License, Version 2.0.</p>
+</body>
+</html> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/build.properties b/ant/org.eclipse.ant.launching/build.properties
new file mode 100644
index 000000000..f7a9d05b8
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/build.properties
@@ -0,0 +1,32 @@
+###############################################################################
+# Copyright (c) 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ plugin.properties,\
+ lib/antdebug.jar,\
+ lib/loggers.jar,\
+ lib/remote.jar,\
+ about.html
+
+jars.compile.order = .,\
+ lib/antdebug.jar,\
+ lib/loggers.jar,\
+ lib/remote.jar
+source.lib/loggers.jar = loggers/
+output.lib/loggers.jar = loggers_bin/
+source.lib/antdebug.jar = common/
+output.lib/antdebug.jar = common_bin/
+source.lib/remote.jar = remote/
+output.lib/remote.jar = remote_bin/
+src.includes = about.html
diff --git a/ant/org.eclipse.ant.launching/buildfiles/buildCommonDebug.xml b/ant/org.eclipse.ant.launching/buildfiles/buildCommonDebug.xml
new file mode 100644
index 000000000..88b99eb55
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/buildfiles/buildCommonDebug.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2005, 2009 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+
+<project name="Build Ant common debug support JAR" default="build" basedir="..">
+
+ <target name="build" description="Cleans, builds and refreshes" depends="clean, lib/antdebuglib.jar"/>
+
+ <target name="init">
+ <property name="temp.folder" value="${basedir}/temp.folder"/>
+ <property name="build.result.folder" value="${basedir}"/>
+ </target>
+
+ <target name="lib/antdebuglib.jar" description= "Creates the antdebug.jar" depends="init">
+ <property name="destdir" value="${temp.folder}/lib/antdebug.jar.bin"/>
+ <delete dir="${destdir}"/>
+ <mkdir dir="${destdir}"/>
+ <!-- copy necessary class files resources -->
+ <copy todir="${destdir}">
+ <fileset dir="${basedir}/common_bin"/>
+ </copy>
+ <mkdir dir="${build.result.folder}/lib"/>
+ <jar destfile="${build.result.folder}/lib/antdebug.jar" basedir="${destdir}"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="clean" description="Deletes previous build remnants" depends="init">
+ <delete file="${build.result.folder}/lib/antdebug.jar"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.launching/buildfiles/buildLoggers.xml b/ant/org.eclipse.ant.launching/buildfiles/buildLoggers.xml
new file mode 100644
index 000000000..1dbb04c01
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/buildfiles/buildLoggers.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2005, 2009 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+
+<project name="Build Ant loggers support JAR" default="build" basedir="..">
+
+ <target name="build" description="Cleans, builds and refreshes" depends="clean, lib/loggerslib.jar"/>
+
+ <target name="init">
+ <property name="temp.folder" value="${basedir}/temp.folder"/>
+ <property name="build.result.folder" value="${basedir}"/>
+ </target>
+
+ <target name="lib/loggerslib.jar" description= "Creates the loggers.jar" depends="init">
+ <property name="destdir" value="${temp.folder}/lib/loggers.jar.bin"/>
+ <delete dir="${destdir}"/>
+ <mkdir dir="${destdir}"/>
+ <!-- copy necessary class files resources -->
+ <copy todir="${destdir}">
+ <fileset dir="${basedir}/loggers_bin/"/>
+ </copy>
+ <mkdir dir="${build.result.folder}/lib"/>
+ <jar destfile="${build.result.folder}/lib/loggers.jar" basedir="${destdir}"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="clean" description="Deletes previous build remnants" depends="init">
+ <delete file="${build.result.folder}/lib/loggers.jar"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.launching/buildfiles/buildRemote.xml b/ant/org.eclipse.ant.launching/buildfiles/buildRemote.xml
new file mode 100644
index 000000000..2122e5854
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/buildfiles/buildRemote.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2005, 2009 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+
+<project name="Build Ant remote support JAR" default="build" basedir="..">
+
+ <target name="build" description="Cleans, builds and refreshes" depends="clean, lib/remotelib.jar"/>
+
+ <target name="init">
+ <property name="temp.folder" value="${basedir}/temp.folder"/>
+ <property name="build.result.folder" value="${basedir}"/>
+ </target>
+
+ <target name="lib/remotelib.jar" description= "Creates the remote.jar" depends="init">
+ <property name="destdir" value="${temp.folder}/lib/remote.jar.bin"/>
+ <delete dir="${destdir}"/>
+ <mkdir dir="${destdir}"/>
+ <!-- copy necessary class files resources -->
+ <copy todir="${destdir}">
+ <fileset dir="${basedir}/remote_bin"/>
+ </copy>
+ <mkdir dir="${build.result.folder}/lib"/>
+ <jar destfile="${build.result.folder}/lib/remote.jar" basedir="${destdir}"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="clean" description="Deletes previous build remnants" depends="init">
+ <delete file="${build.result.folder}/lib/remote.jar"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.launching/common/META-INF/eclipse.inf b/ant/org.eclipse.ant.launching/common/META-INF/eclipse.inf
new file mode 100644
index 000000000..b4df3ab63
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/common/META-INF/eclipse.inf
@@ -0,0 +1 @@
+jarprocessor.exclude.sign=true \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/common/org/eclipse/ant/internal/launching/debug/IDebugBuildLogger.java b/ant/org.eclipse.ant.launching/common/org/eclipse/ant/internal/launching/debug/IDebugBuildLogger.java
new file mode 100644
index 000000000..9eb06c54b
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/common/org/eclipse/ant/internal/launching/debug/IDebugBuildLogger.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug;
+
+
+public interface IDebugBuildLogger {
+
+ /**
+ * Requests to suspend the build if the current debug state
+ * indicates that suspension is required.
+ */
+ public abstract void waitIfSuspended();
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/loggers/META-INF/eclipse.inf b/ant/org.eclipse.ant.launching/loggers/META-INF/eclipse.inf
new file mode 100644
index 000000000..b4df3ab63
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/loggers/META-INF/eclipse.inf
@@ -0,0 +1 @@
+jarprocessor.exclude.sign=true \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/NullBuildLogger.java b/ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/NullBuildLogger.java
new file mode 100644
index 000000000..8d50250f3
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/NullBuildLogger.java
@@ -0,0 +1,179 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.runtime.logger;
+
+
+import java.io.PrintStream;
+
+import org.apache.tools.ant.BuildEvent;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.BuildLogger;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.util.StringUtils;
+import org.eclipse.ant.core.AntSecurityException;
+import org.eclipse.ant.internal.core.AbstractEclipseBuildLogger;
+import org.eclipse.core.runtime.OperationCanceledException;
+
+public class NullBuildLogger extends AbstractEclipseBuildLogger implements BuildLogger{
+
+ protected int fMessageOutputLevel = Project.MSG_INFO;
+ private PrintStream fErr= null;
+ private PrintStream fOut= null;
+ protected boolean fEmacsMode= false;
+
+ /**
+ * An exception that has already been logged.
+ */
+ protected Throwable fHandledException= null;
+
+ /**
+ * @see org.apache.tools.ant.BuildLogger#setMessageOutputLevel(int)
+ */
+ public void setMessageOutputLevel(int level) {
+ fMessageOutputLevel= level;
+ }
+
+ protected int getMessageOutputLevel() {
+ return fMessageOutputLevel;
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildLogger#setEmacsMode(boolean)
+ */
+ public void setEmacsMode(boolean emacsMode) {
+ fEmacsMode= emacsMode;
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#buildStarted(org.apache.tools.ant.BuildEvent)
+ */
+ public void buildStarted(BuildEvent event) {
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#buildFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void buildFinished(BuildEvent event) {
+ String message= handleException(event);
+ if (message != null) {
+ logMessage(message, getMessageOutputLevel());
+ }
+ fHandledException= null;
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#targetStarted(org.apache.tools.ant.BuildEvent)
+ */
+ public void targetStarted(BuildEvent event) {
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#targetFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void targetFinished(BuildEvent event) {
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#taskStarted(org.apache.tools.ant.BuildEvent)
+ */
+ public void taskStarted(BuildEvent event) {
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#taskFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void taskFinished(BuildEvent event) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.BuildListener#messageLogged(org.apache.tools.ant.BuildEvent)
+ */
+ public void messageLogged(BuildEvent event) {
+ logMessage(event.getMessage(), event.getPriority());
+ }
+
+ protected PrintStream getErrorPrintStream() {
+ return fErr;
+ }
+
+ protected PrintStream getOutputPrintStream() {
+ return fOut;
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildLogger#setErrorPrintStream(java.io.PrintStream)
+ */
+ public void setErrorPrintStream(PrintStream err) {
+ //this build logger logs to "null" unless
+ //the user has explicitly set a logfile to use
+ if (err == System.err) {
+ fErr= null;
+ } else {
+ fErr= err;
+ }
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildLogger#setOutputPrintStream(java.io.PrintStream)
+ */
+ public void setOutputPrintStream(PrintStream output) {
+ //this build logger logs to "null" unless
+ //the user has explicitly set a logfile to use
+ if (output == System.out) {
+ fOut= null;
+ } else {
+ fOut= output;
+ }
+ }
+
+ protected void logMessage(String message, int priority) {
+ if (priority > getMessageOutputLevel()) {
+ return;
+ }
+
+ if (priority == Project.MSG_ERR) {
+ if (getErrorPrintStream() != null && getErrorPrintStream() != System.err) {
+ //user has designated to log to a logfile
+ getErrorPrintStream().println(message);
+ }
+ } else {
+ if (getOutputPrintStream() != null && getOutputPrintStream() != System.out) {
+ //user has designated to log to a logfile
+ getOutputPrintStream().println(message);
+ }
+ }
+ }
+
+ protected String handleException(BuildEvent event) {
+ Throwable exception = event.getException();
+ if (exception == null || exception == fHandledException
+ || exception instanceof OperationCanceledException
+ || exception instanceof AntSecurityException) {
+ return null;
+ }
+ fHandledException= exception;
+ StringBuffer message= new StringBuffer();
+ message.append(StringUtils.LINE_SEP);
+ message.append(RuntimeMessages.NullBuildLogger_1);
+ message.append(StringUtils.LINE_SEP);
+ if (Project.MSG_VERBOSE <= fMessageOutputLevel || !(exception instanceof BuildException)) {
+ message.append(StringUtils.getStackTrace(exception));
+ } else {
+ if (exception instanceof BuildException) {
+ message.append(exception.toString()).append(StringUtils.LINE_SEP);
+ } else {
+ message.append(exception.getMessage()).append(StringUtils.LINE_SEP);
+ }
+ }
+
+ return message.toString();
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/RuntimeMessages.java b/ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/RuntimeMessages.java
new file mode 100644
index 000000000..a1db5586c
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/RuntimeMessages.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.runtime.logger;
+
+import org.eclipse.osgi.util.NLS;
+
+public class RuntimeMessages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.ant.internal.launching.runtime.logger.RuntimeMessages";//$NON-NLS-1$
+
+ public static String NullBuildLogger_1;
+ public static String AntProcessBuildLogger_Total_time;
+ public static String AntProcessBuildLogger__minutes_2;
+ public static String AntProcessBuildLogger__minute_3;
+ public static String AntProcessBuildLogger__seconds_4;
+ public static String AntProcessBuildLogger__second_5;
+ public static String AntProcessBuildLogger__milliseconds_6;
+
+ public static String AntProcessDebugBuildLogger_1;
+
+ static {
+ // load message values from bundle file
+ NLS.initializeMessages(BUNDLE_NAME, RuntimeMessages.class);
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/RuntimeMessages.properties b/ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/RuntimeMessages.properties
new file mode 100644
index 000000000..573188a0f
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/loggers/org/eclipse/ant/internal/launching/runtime/logger/RuntimeMessages.properties
@@ -0,0 +1,20 @@
+###############################################################################
+# Copyright (c) 2000, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+NullBuildLogger_1=BUILD FAILED
+AntProcessBuildLogger_Total_time=Total time:
+AntProcessBuildLogger__minutes_2=\ minutes
+AntProcessBuildLogger__minute_3=\ minute
+AntProcessBuildLogger__seconds_4=\ seconds
+AntProcessBuildLogger__second_5=\ second
+AntProcessBuildLogger__milliseconds_6=\ milliseconds
+
+AntProcessDebugBuildLogger_1=Build cancelled.
diff --git a/ant/org.eclipse.ant.launching/plugin.properties b/ant/org.eclipse.ant.launching/plugin.properties
new file mode 100644
index 000000000..650fb4ff5
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/plugin.properties
@@ -0,0 +1,24 @@
+###############################################################################
+# Copyright (c) 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+pluginName=Ant Launching Support
+providerName=Eclipse.org
+
+AntBuild = Ant Build
+AntLaunchDelegate.name=Eclipse Ant Launcher
+AntLaunchDelegate.description=The Eclipse Ant Launcher supports running and debugging Ant build files.
+
+AntBuilder.name=Ant Builder
+AntBuilderLaunchDelegate.name= Eclipse Ant Builder Launcher
+AntBuilderLaunchDelegate.description=The Eclipse Ant Builder Launcher supports running Ant build files.
+
+antBreakpointGroupName= Ant Breakpoints
+AntLineBreakpoint.name = Ant Line Breakpoint \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/remote/META-INF/eclipse.inf b/ant/org.eclipse.ant.launching/remote/META-INF/eclipse.inf
new file mode 100644
index 000000000..b4df3ab63
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/META-INF/eclipse.inf
@@ -0,0 +1 @@
+jarprocessor.exclude.sign=true \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/AntSecurityException.java b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/AntSecurityException.java
new file mode 100644
index 000000000..294b248a9
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/AntSecurityException.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.remote;
+
+/**
+ * A security exception that is thrown by the AntSecurityManager if
+ * an Ant task in some way attempts to halt or exit the Java Virtual Machine.
+ *
+ * @since 2.1
+ */
+public class AntSecurityException extends SecurityException {
+
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/AntSecurityManager.java b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/AntSecurityManager.java
new file mode 100644
index 000000000..30f7ebb0c
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/AntSecurityManager.java
@@ -0,0 +1,371 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.remote;
+
+
+import java.io.FileDescriptor;
+import java.net.InetAddress;
+import java.net.SocketPermission;
+import java.security.Permission;
+import java.util.PropertyPermission;
+
+/**
+ * A security manager that always throws an <code>AntSecurityException</code>
+ * if the calling thread attempts to cause the Java Virtual Machine to
+ * exit/halt or if the restricted thread attempts to set a System property.
+ * Otherwise this manager just delegates to the pre-existing manager
+ * passed in the constructor or mimics the default security manager behavior
+ */
+public class AntSecurityManager extends SecurityManager {
+
+ private SecurityManager fSecurityManager= null;
+ private Thread fRestrictedThread= null;
+ //ensure that the PropertyPermission class is loaded before we
+ //start checking permissions: bug 85908
+ private static final PropertyPermission fgPropertyPermission= new PropertyPermission("*", "write"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ private boolean fAllowSettingSystemProperties= true;
+
+ public AntSecurityManager(SecurityManager securityManager, Thread restrictedThread, boolean allowSettingProperties) {
+ fSecurityManager= securityManager;
+ fRestrictedThread= restrictedThread;
+ fAllowSettingSystemProperties= allowSettingProperties;
+ }
+
+ public AntSecurityManager(SecurityManager securityManager, Thread restrictedThread) {
+ this(securityManager, restrictedThread, true);
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkExit(int)
+ */
+ public void checkExit(int status) {
+ //no exit allowed from the restricted thread...System.exit is being called
+ //by some ant task...disallow the exit
+ if (Thread.currentThread() == fRestrictedThread) {
+ throw new AntSecurityException();
+ }
+ if (fSecurityManager != null) {
+ fSecurityManager.checkExit(status);
+ }
+ }
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkAccept(java.lang.String, int)
+ */
+ public void checkAccept(String host, int port) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkAccept(host, port);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkAccess(java.lang.Thread)
+ */
+ public void checkAccess(Thread t) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkAccess(t);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkAccess(java.lang.ThreadGroup)
+ */
+ public void checkAccess(ThreadGroup g) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkAccess(g);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkAwtEventQueueAccess()
+ */
+ public void checkAwtEventQueueAccess() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkAwtEventQueueAccess();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkConnect(java.lang.String, int, java.lang.Object)
+ */
+ public void checkConnect(String host, int port, Object context) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkConnect(host, port, context);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkConnect(java.lang.String, int)
+ */
+ public void checkConnect(String host, int port) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkConnect(host, port);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkCreateClassLoader()
+ */
+ public void checkCreateClassLoader() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkCreateClassLoader();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkDelete(java.lang.String)
+ */
+ public void checkDelete(String file) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkDelete(file);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkExec(java.lang.String)
+ */
+ public void checkExec(String cmd) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkExec(cmd);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkLink(java.lang.String)
+ */
+ public void checkLink(String lib) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkLink(lib);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkListen(int)
+ */
+ public void checkListen(int port) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkListen(port);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkMemberAccess(java.lang.Class, int)
+ */
+ public void checkMemberAccess(Class clazz, int which) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkMemberAccess(clazz, which);
+ }
+ }
+
+ /**
+ * @see java.lang.SecurityManager#checkMulticast(java.net.InetAddress, byte)
+ * @deprecated
+ */
+ public void checkMulticast(InetAddress maddr, byte ttl) {
+ if (fSecurityManager != null) {
+ String host = maddr.getHostAddress();
+ if (!host.startsWith("[") && host.indexOf(':') != -1) { //$NON-NLS-1$
+ host = "[" + host + "]"; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ checkPermission(new SocketPermission(host, "accept,connect")); //$NON-NLS-1$
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkMulticast(java.net.InetAddress)
+ */
+ public void checkMulticast(InetAddress maddr) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkMulticast(maddr);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPackageAccess(java.lang.String)
+ */
+ public void checkPackageAccess(String pkg) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPackageAccess(pkg);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPackageDefinition(java.lang.String)
+ */
+ public void checkPackageDefinition(String pkg) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPackageDefinition(pkg);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPermission(java.security.Permission, java.lang.Object)
+ */
+ public void checkPermission(Permission perm, Object context) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPermission(perm, context);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPermission(java.security.Permission)
+ */
+ public void checkPermission(Permission perm) {
+ if (!fAllowSettingSystemProperties && fgPropertyPermission.implies(perm) && fRestrictedThread == Thread.currentThread()) {
+ //attempting to write a system property
+ throw new AntSecurityException();
+ }
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPermission(perm);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPrintJobAccess()
+ */
+ public void checkPrintJobAccess() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPrintJobAccess();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPropertiesAccess()
+ */
+ public void checkPropertiesAccess() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPropertiesAccess();
+ }
+ super.checkPropertiesAccess();
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkPropertyAccess(java.lang.String)
+ */
+ public void checkPropertyAccess(String key) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkPropertyAccess(key);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkRead(java.io.FileDescriptor)
+ */
+ public void checkRead(FileDescriptor fd) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkRead(fd);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkRead(java.lang.String, java.lang.Object)
+ */
+ public void checkRead(String file, Object context) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkRead(file, context);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkRead(java.lang.String)
+ */
+ public void checkRead(String file) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkRead(file);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkSecurityAccess(java.lang.String)
+ */
+ public void checkSecurityAccess(String target) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkSecurityAccess(target);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkSetFactory()
+ */
+ public void checkSetFactory() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkSetFactory();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkSystemClipboardAccess()
+ */
+ public void checkSystemClipboardAccess() {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkSystemClipboardAccess();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkTopLevelWindow(java.lang.Object)
+ */
+ public boolean checkTopLevelWindow(Object window) {
+ if (fSecurityManager != null) {
+ return fSecurityManager.checkTopLevelWindow(window);
+ }
+ return super.checkTopLevelWindow(window);
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkWrite(java.io.FileDescriptor)
+ */
+ public void checkWrite(FileDescriptor fd) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkWrite(fd);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#checkWrite(java.lang.String)
+ */
+ public void checkWrite(String file) {
+ if (fSecurityManager != null) {
+ fSecurityManager.checkWrite(file);
+ }
+ }
+
+ /**
+ * @see java.lang.SecurityManager#getInCheck()
+ * @deprecated
+ */
+ public boolean getInCheck() {
+ if (fSecurityManager != null) {
+ return fSecurityManager.getInCheck();
+ }
+ return super.getInCheck();
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#getSecurityContext()
+ */
+ public Object getSecurityContext() {
+ if (fSecurityManager != null) {
+ return fSecurityManager.getSecurityContext();
+ }
+ return super.getSecurityContext();
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.SecurityManager#getThreadGroup()
+ */
+ public ThreadGroup getThreadGroup() {
+ if (fSecurityManager != null) {
+ fSecurityManager.getThreadGroup();
+ }
+ return super.getThreadGroup();
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/DemuxInputStreamSetter.java b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/DemuxInputStreamSetter.java
new file mode 100644
index 000000000..9111611c2
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/DemuxInputStreamSetter.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.remote;
+
+
+import org.apache.tools.ant.DemuxInputStream;
+import org.apache.tools.ant.Project;
+
+/**
+ * This class exists so that the Ant integration has backwards compatibility
+ * with Ant releases previous to 1.6. DemuxInputStream is a new class to Ant 1.6.
+ */
+class DemuxInputStreamSetter {
+
+ protected void remapSystemIn(Project project) {
+ System.setIn(new DemuxInputStream(project));
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/EclipseDefaultExecutor.java b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/EclipseDefaultExecutor.java
new file mode 100644
index 000000000..6b86f5d62
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/EclipseDefaultExecutor.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.remote;
+
+import java.util.Arrays;
+import java.util.Vector;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Executor;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.helper.DefaultExecutor;
+
+public class EclipseDefaultExecutor extends DefaultExecutor {
+
+ private static final EclipseSingleCheckExecutor SUB_EXECUTOR = new EclipseSingleCheckExecutor();
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Executor#executeTargets(org.apache.tools.ant.Project, java.lang.String[])
+ */
+ public void executeTargets(Project project, String[] targetNames) throws BuildException {
+ Vector v= new Vector();
+ v.addAll(Arrays.asList(targetNames));
+ project.addReference("eclipse.ant.targetVector", v); //$NON-NLS-1$
+ super.executeTargets(project, targetNames);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Executor#getSubProjectExecutor()
+ */
+ public Executor getSubProjectExecutor() {
+ return SUB_EXECUTOR;
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/EclipseSingleCheckExecutor.java b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/EclipseSingleCheckExecutor.java
new file mode 100644
index 000000000..62ddd4fe0
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/EclipseSingleCheckExecutor.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.remote;
+
+import java.util.Arrays;
+import java.util.Vector;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Executor;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.helper.SingleCheckExecutor;
+
+public class EclipseSingleCheckExecutor extends SingleCheckExecutor {
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Executor#executeTargets(org.apache.tools.ant.Project, java.lang.String[])
+ */
+ public void executeTargets(Project project, String[] targetNames) throws BuildException {
+ Vector v= new Vector();
+ v.addAll(Arrays.asList(targetNames));
+ project.addReference("eclipse.ant.targetVector", v); //$NON-NLS-1$
+ super.executeTargets(project, targetNames);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Executor#getSubProjectExecutor()
+ */
+ public Executor getSubProjectExecutor() {
+ return this;
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/ExecutorSetter.java b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/ExecutorSetter.java
new file mode 100644
index 000000000..ed9aba55f
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/ExecutorSetter.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.remote;
+
+import org.apache.tools.ant.Executor;
+import org.apache.tools.ant.Project;
+
+/**
+ * This class exists so that the Ant integration has backwards compatibility
+ * with Ant releases previous to 1.6.3. Executors are a new feature of Ant 1.6.3.
+ */
+public class ExecutorSetter {
+
+ protected void setExecutor(Project project) {
+ Executor executor= new EclipseDefaultExecutor();
+ project.setExecutor(executor);
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/InputHandlerSetter.java b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/InputHandlerSetter.java
new file mode 100644
index 000000000..21bdd1f30
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/InputHandlerSetter.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.remote;
+
+
+import java.text.MessageFormat; // can't use ICU, used by ant
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.input.DefaultInputHandler;
+import org.apache.tools.ant.input.InputHandler;
+
+/**
+ * This class exists so that the Ant integration has backwards compatibility
+ * with Ant releases previous to 1.5. InputHandlers are a new feature of Ant 1.5.
+ */
+class InputHandlerSetter {
+
+ protected void setInputHandler(Project project, String inputHandlerClassname) {
+ InputHandler handler = null;
+ if (inputHandlerClassname == null) {
+ handler = new DefaultInputHandler();
+ } else {
+ try {
+ handler = (InputHandler)(Class.forName(inputHandlerClassname).newInstance());
+ } catch (ClassCastException e) {
+ String msg = MessageFormat.format(RemoteAntMessages.getString("InternalAntRunner.The_specified_input_handler_class_{0}_does_not_implement_the_org.apache.tools.ant.input.InputHandler_interface_5"), new String[]{inputHandlerClassname}); //$NON-NLS-1$
+ throw new BuildException(msg, e);
+ } catch (Exception e) {
+ String msg = MessageFormat.format(RemoteAntMessages.getString("InternalAntRunner.Unable_to_instantiate_specified_input_handler_class_{0}___{1}_6"), new String[]{inputHandlerClassname, e.getClass().getName()}); //$NON-NLS-1$
+ throw new BuildException(msg, e);
+ }
+ }
+ project.setInputHandler(handler);
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/RemoteAntMessages.java b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/RemoteAntMessages.java
new file mode 100644
index 000000000..5cb927eb4
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/RemoteAntMessages.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.remote;
+
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+public class RemoteAntMessages {
+
+ private static final String BUNDLE_NAME = "org.eclipse.ant.internal.launching.remote.RemoteAntMessages"; //$NON-NLS-1$
+
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
+
+ private RemoteAntMessages() {
+ }
+
+ public static String getString(String key) {
+ try {
+ return RESOURCE_BUNDLE.getString(key);
+ } catch (MissingResourceException e) {
+ return '!' + key + '!';
+ }
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/RemoteAntMessages.properties b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/RemoteAntMessages.properties
new file mode 100644
index 000000000..a0c733232
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/RemoteAntMessages.properties
@@ -0,0 +1,76 @@
+###############################################################################
+# Copyright (c) 2000, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+InternalAntRunner.Build_file__{0}_1=Buildfile: {0}
+InternalAntRunner.Arguments__{0}_2=Arguments: {0}
+InternalAntRunner.Default_target__3=Default target:
+InternalAntRunner.Main_targets__4=Main targets:
+InternalAntRunner.Subtargets__5=Subtargets:
+InternalAntRunner.Unable_to_instantiate_logger__{0}_6=Unable to instantiate logger: {0}
+InternalAntRunner.Could_not_load_the_version_information._{0}_9=Could not load the version information. {0}
+InternalAntRunner.Could_not_load_the_version_information._10=Could not load the version information.
+InternalAntRunner.options_13=options
+InternalAntRunner.target_15=target
+InternalAntRunner.Options___21=Options:
+InternalAntRunner.print_this_message_23=print this message
+InternalAntRunner.print_project_help_information_25=print project help information
+InternalAntRunner.print_the_version_information_and_exit_27=print the version information and exit
+InternalAntRunner.be_extra_quiet_29=be extra quiet
+InternalAntRunner.be_extra_verbose_31=be extra verbose
+InternalAntRunner.print_debugging_information_33=print debugging information
+InternalAntRunner.produce_logging_information_without_adornments_35=produce logging information without adornments
+InternalAntRunner.use_given_file_for_log_37=use given file for log
+InternalAntRunner.the_class_which_is_to_perform_logging_39=the class which is to perform logging
+InternalAntRunner.add_an_instance_of_class_as_a_project_listener_41=add an instance of class as a project listener
+InternalAntRunner.use_given_buildfile_43=use given buildfile
+InternalAntRunner.use_value_for_given_property_45=use value for given property
+InternalAntRunner.Using_{0}_file_as_build_log._1=Using {0} file as build log.
+InternalAntRunner.Could_not_write_to_the_specified_log_file__{0}._Make_sure_the_path_exists_and_you_have_write_permissions._2=Cannot write on the specified log file: {0}. Make sure the path exists and you have write permissions.
+InternalAntRunner.BUILD_SUCCESSFUL_1=BUILD SUCCESSFUL
+InternalAntRunner.Unknown_argument__{0}_2=Unknown argument: {0}
+InternalAntRunner.Buildfile__{0}_does_not_exist_!_1=Buildfile: {0} does not exist
+InternalAntRunner.{0}_which_was_specified_to_be_a_build_listener_is_not_an_instance_of_org.apache.tools.ant.BuildListener._1={0} which was specified to be a build listener is not an instance of org.apache.tools.ant.BuildListener.
+InternalAntRunner.{0}_which_was_specified_to_perform_logging_is_not_an_instance_of_org.apache.tools.ant.BuildLogger._2={0} which was specified to perform logging is not an instance of org.apache.tools.ant.BuildLogger.
+InternalAntRunner.You_must_specify_a_classname_when_using_the_-listener_argument_1=You must specify a classname when using the -listener argument
+InternalAntRunner.You_must_specify_a_log_file_when_using_the_-log_argument_3=You must specify a log file when using the -log argument
+InternalAntRunner.You_must_specify_a_buildfile_when_using_the_-buildfile_argument_4=You must specify a buildfile when using the -buildfile argument
+InternalAntRunner.12=print information that might be helpful to
+InternalAntRunner.13=\t\t\t\t\t\t\tdiagnose or report problems.
+InternalAntRunner.19=load all properties from file with -D
+InternalAntRunner.20=\t\t\t\t\t\t\tproperties taking precedence
+InternalAntRunner.22=the class which will handle input requests
+InternalAntRunner.1=\t\t\t\t\'
+InternalAntRunner.Only_one_logger_class_may_be_specified_1=Only one logger class may be specified
+InternalAntRunner.You_must_specify_a_classname_when_using_the_-inputhandler_argument_1=You must specify a classname when using the -inputhandler argument
+InternalAntRunner.Only_one_input_handler_class_may_be_specified._2=Only one input handler class may be specified.
+InternalAntRunner.You_must_specify_a_property_filename_when_using_the_-propertyfile_argument_3=You must specify a property filename when using the -propertyfile argument
+InternalAntRunner.Could_not_load_property_file_{0}__{1}_4=Could not load property file {0}: {1}
+InternalAntRunner.The_specified_input_handler_class_{0}_does_not_implement_the_org.apache.tools.ant.input.InputHandler_interface_5=The specified input handler class {0} does not implement the org.apache.tools.ant.input.InputHandler interface
+InternalAntRunner.Unable_to_instantiate_specified_input_handler_class_{0}___{1}_6=Unable to instantiate specified input handler class {0} : {1}
+InternalAntRunner.The_diagnositics_options_is_an_Ant_1.5.*_feature._Please_update_your_Ant_classpath_to_include_an_Ant_version_greater_than_this._4=The diagnostics options is an Ant 1.5.* feature. Please update your Ant classpath to include an Ant version greater than this.
+InternalAntRunner.Specifying_property_files_is_a_Ant_1.5.*_feature._Please_update_your_Ant_classpath._6=Specifying property files is a Ant 1.5.* feature. Please update your Ant classpath to include an Ant version greater than this.
+InternalAntRunner.ANT_HOME_must_be_set_to_use_Ant_diagnostics_2=ANT_HOME must be set to use Ant diagnostics
+InternalAntRunner.Buildfile__{0}_is_not_a_file_1=Buildfile: {0} is not a file
+InternalAntRunner.-find_not_supported=-find not supported.\nCan be emulated using Run As > Ant Build located\nin the Run > External Tools menu
+InternalAntRunner.157=-lib not supported\nConfigure the Ant runtime classpath using either the\nglobal Ant runtime classpath or the Ant runtime classpath\n for this particular build
+InternalAntRunner.158=\t\t\tdo not allow interactive input
+InternalAntRunner.159=\t\texecute all targets that do not depend
+InternalAntRunner.160=\t\t\t\t\t\ton failed target(s)
+InternalAntRunner.161=Class {0} not found for task {1}
+InternalAntRunner.162=Class {0} not found for type {1}
+
+RemoteAntBuildLogger.1=BUILD FAILED
+RemoteAntBuildLogger.Total_time=Total time:
+RemoteAntBuildLogger._minutes_2=\ minutes
+RemoteAntBuildLogger._minute_3=\ minute
+RemoteAntBuildLogger._seconds_4=\ seconds
+RemoteAntBuildLogger._second_5=\ second
+RemoteAntBuildLogger._milliseconds_6=\ milliseconds
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/inputhandler/FailInputHandler.java b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/inputhandler/FailInputHandler.java
new file mode 100644
index 000000000..63341f448
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/inputhandler/FailInputHandler.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.launching.remote.inputhandler;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.tools.ant.input.DefaultInputHandler;
+
+public class FailInputHandler extends DefaultInputHandler {
+
+ protected InputStream getInputStream() {
+ //ensure any attempts to read input fail
+ return new InputStream(){
+ public int read() throws IOException {
+ throw new IOException();
+ }
+ };
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/logger/MessageIds.java b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/logger/MessageIds.java
new file mode 100644
index 000000000..1c0741ab1
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/logger/MessageIds.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.remote.logger;
+
+
+public class MessageIds {
+
+ public final static String PROCESS_ID= "processID"; //$NON-NLS-1$
+ public final static String BUILD_CANCELLED= "cancelled"; //$NON-NLS-1$
+ //constants need to start greater than the Project.MSG_* constants
+ public final static String TASK= "6"; //$NON-NLS-1$
+ public final static String TARGET= "7"; //$NON-NLS-1$
+}
diff --git a/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/logger/RemoteAntBreakpoint.java b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/logger/RemoteAntBreakpoint.java
new file mode 100644
index 000000000..f3715163c
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/remote/org/eclipse/ant/internal/launching/remote/logger/RemoteAntBreakpoint.java
@@ -0,0 +1,74 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.remote.logger;
+
+import java.io.File;
+
+import org.eclipse.ant.internal.launching.debug.model.DebugMessageIds;
+
+public class RemoteAntBreakpoint {
+
+ private File fFile;
+ private int fLineNumber;
+ private String fFileName;
+
+ public RemoteAntBreakpoint(String breakpointRepresentation) {
+ String[] data= breakpointRepresentation.split(DebugMessageIds.MESSAGE_DELIMITER);
+ String fileName= data[1];
+ String lineNumber= data[2];
+ fFileName= fileName;
+ fFile= new File(fileName);
+ fLineNumber= Integer.parseInt(lineNumber);
+ }
+
+ public boolean isAt(String fileName, int lineNumber) {
+ return fLineNumber == lineNumber && fileName != null && fFile.equals(new File(fileName));
+ }
+
+ public String toMarshallString() {
+ StringBuffer buffer= new StringBuffer(DebugMessageIds.BREAKPOINT);
+ buffer.append(DebugMessageIds.MESSAGE_DELIMITER);
+ buffer.append(fFileName);
+ buffer.append(DebugMessageIds.MESSAGE_DELIMITER);
+ buffer.append(fLineNumber);
+ return buffer.toString();
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals(Object obj) {
+ if (!(obj instanceof RemoteAntBreakpoint)) {
+ return false;
+ }
+ RemoteAntBreakpoint other= (RemoteAntBreakpoint) obj;
+ return other.getLineNumber() == fLineNumber && other.getFile().equals(fFile);
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ public int hashCode() {
+ return fFileName.hashCode() + fLineNumber;
+ }
+
+ public int getLineNumber() {
+ return fLineNumber;
+ }
+
+ public String getFileName() {
+ return fFileName;
+ }
+
+ public File getFile() {
+ return fFile;
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntCoreModelMessages.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntCoreModelMessages.java
new file mode 100644
index 000000000..fa78e74ea
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntCoreModelMessages.java
@@ -0,0 +1,25 @@
+/**********************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.ant.internal.launching;
+
+import org.eclipse.osgi.util.NLS;
+
+public class AntCoreModelMessages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.ant.internal.launching.launchConfigurations.AntCoreModelMessages";//$NON-NLS-1$
+
+ public static String AntUtil_6;
+ public static String AntUtil_7;
+ public static String AntUtil_2;
+
+ static {
+ // load message values from bundle file
+ NLS.initializeMessages(BUNDLE_NAME, AntCoreModelMessages.class);
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntCoreModelMessages.properties b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntCoreModelMessages.properties
new file mode 100644
index 000000000..6bad54fc4
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntCoreModelMessages.properties
@@ -0,0 +1,14 @@
+###############################################################################
+# Copyright (c) 2000, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+AntUtil_6=Invalid property file entry: {0}
+AntUtil_7=Unable to generate Ant classpath
+AntUtil_2=Error reading launch configuration
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunch.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunch.java
new file mode 100644
index 000000000..81c4143df
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunch.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.Launch;
+import org.eclipse.debug.core.model.ISourceLocator;
+
+/**
+ * Stores link descriptors for Launch for further use of TaskLinkManager
+ */
+public class AntLaunch extends Launch {
+ List linkDescriptors;
+
+ public AntLaunch(ILaunchConfiguration launchConfiguration, String mode, ISourceLocator locator) {
+ super(launchConfiguration, mode, locator);
+ linkDescriptors = new ArrayList();
+ }
+
+ public void addLinkDescriptor(String line, String fileName, int lineNumber, int offset, int length) {
+ if (fileName!= null && fileName.trim().length() > 0) {
+ synchronized (linkDescriptors) {
+ linkDescriptors.add(new LinkDescriptor(line, fileName, lineNumber, offset, length));
+ }
+ }
+ }
+
+ public void removeLinkDescriptor(LinkDescriptor ld) {
+ synchronized (linkDescriptors) {
+ linkDescriptors.remove(ld);
+ }
+ }
+
+ public List getLinkDescriptors() {
+ synchronized (linkDescriptors) {
+ return new ArrayList(linkDescriptors);
+ }
+ }
+
+ public void clearLinkDescriptors() {
+ synchronized (linkDescriptors) {
+ linkDescriptors.clear();
+ }
+ }
+
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunchingPreferenceInitializer.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunchingPreferenceInitializer.java
new file mode 100644
index 000000000..54d596434
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunchingPreferenceInitializer.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching;
+
+import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+
+public class AntLaunchingPreferenceInitializer extends
+ AbstractPreferenceInitializer {
+
+ public AntLaunchingPreferenceInitializer() {
+ super();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @seeorg.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#
+ * initializeDefaultPreferences()
+ */
+ public void initializeDefaultPreferences() {
+
+ IEclipsePreferences node = new DefaultScope()
+ .getNode(AntLaunching.getUniqueIdentifier());
+ node.put(IAntLaunchingPreferenceConstants.ANT_COMMUNICATION_TIMEOUT,
+ "20000"); //$NON-NLS-1$
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/IAntLaunchingPreferenceConstants.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/IAntLaunchingPreferenceConstants.java
new file mode 100644
index 000000000..9acd58136
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/IAntLaunchingPreferenceConstants.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching;
+
+/**
+ * Constants used to identify user preferences.
+ */
+public interface IAntLaunchingPreferenceConstants {
+
+ /**
+ * int preference identifier constant which specifies the length of time to wait
+ * to connect with the socket that communicates with the separate JRE to capture the output
+ */
+ public static final String ANT_COMMUNICATION_TIMEOUT= "timeout"; //$NON-NLS-1$
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/LinkDescriptor.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/LinkDescriptor.java
new file mode 100644
index 000000000..baba206cc
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/LinkDescriptor.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching;
+
+/**
+ * Stores detailed data of Link. Used to create linked messages.
+ */
+public class LinkDescriptor {
+ String line;
+ String fileName;
+ int lineNumber;
+ int offset;
+ int length;
+
+ public LinkDescriptor(String line, String fileName, int lineNumber,
+ int offset, int length) {
+ super();
+ this.line = line;
+ this.fileName = fileName;
+ this.lineNumber = lineNumber;
+ this.offset = offset;
+ this.length = length;
+ }
+
+ public String getLine() {
+ return line;
+ }
+
+ public void setLine(String line) {
+ this.line = line;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public int getLineNumber() {
+ return lineNumber;
+ }
+
+ public void setLineNumber(int lineNumber) {
+ this.lineNumber = lineNumber;
+ }
+
+ public int getOffset() {
+ return offset;
+ }
+
+ public void setOffset(int offset) {
+ this.offset = offset;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntDebugMessages.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntDebugMessages.java
new file mode 100644
index 000000000..396c1c44a
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntDebugMessages.java
@@ -0,0 +1,23 @@
+/**********************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.ant.internal.launching.debug;
+
+import org.eclipse.osgi.util.NLS;
+
+public class AntDebugMessages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.ant.internal.launching.debug.AntDebugMessages";//$NON-NLS-1$
+
+ public static String AntSourceContainer_0;
+
+ static {
+ // load message values from bundle file
+ NLS.initializeMessages(BUNDLE_NAME, AntDebugMessages.class);
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntDebugMessages.properties b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntDebugMessages.properties
new file mode 100644
index 000000000..78c11d981
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntDebugMessages.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2005, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+AntSourceContainer_0=Ant Source Container \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceContainer.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceContainer.java
new file mode 100644
index 000000000..579b66fc2
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceContainer.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.launching.debug;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.debug.core.sourcelookup.ISourceContainerType;
+import org.eclipse.debug.core.sourcelookup.containers.AbstractSourceContainer;
+import org.eclipse.debug.core.sourcelookup.containers.LocalFileStorage;
+
+public class AntSourceContainer extends AbstractSourceContainer {
+
+ private IWorkspaceRoot fRoot;
+
+ public AntSourceContainer() {
+ fRoot = ResourcesPlugin.getWorkspace().getRoot();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.sourcelookup.ISourceContainer#findSourceElements(java.lang.String)
+ */
+ public Object[] findSourceElements(String path) throws CoreException {
+ ArrayList sources = new ArrayList();
+ File osFile = new File(path);
+ if (osFile.exists()) {
+ try {
+ IPath canonicalPath = new Path(osFile.getCanonicalPath());
+ IFile[] files = fRoot.findFilesForLocation(canonicalPath);
+ if (files.length > 0) {
+ for (int i = 0; i < files.length; i++) {
+ sources.add(files[i]);
+ }
+ } else {
+ sources.add(new LocalFileStorage(osFile));
+ }
+ } catch (IOException e) {
+ }
+ }
+ return sources.toArray();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.sourcelookup.ISourceContainer#getName()
+ */
+ public String getName() {
+ return AntDebugMessages.AntSourceContainer_0;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.sourcelookup.ISourceContainer#getType()
+ * Not persisted via the launch configuration
+ */
+ public ISourceContainerType getType() {
+ return null;
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceLookupDirector.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceLookupDirector.java
new file mode 100644
index 000000000..e0de3dd7d
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceLookupDirector.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.sourcelookup.AbstractSourceLookupDirector;
+import org.eclipse.debug.core.sourcelookup.ISourceLookupParticipant;
+
+/**
+ * Ant source lookup director. For Ant source lookup there is one source
+ * lookup participant.
+ */
+public class AntSourceLookupDirector extends AbstractSourceLookupDirector {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.sourcelookup.ISourceLookupDirector#initializeParticipants()
+ */
+ public void initializeParticipants() {
+ addParticipants(new ISourceLookupParticipant[]{new AntSourceLookupParticipant()});
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IPersistableSourceLocator#getMemento()
+ */
+ public String getMemento() throws CoreException {
+ return null;
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceLookupParticipant.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceLookupParticipant.java
new file mode 100644
index 000000000..73e040977
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourceLookupParticipant.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug;
+
+import org.eclipse.ant.internal.launching.debug.model.AntStackFrame;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.sourcelookup.AbstractSourceLookupParticipant;
+
+/**
+ * The Ant source lookup participant knows how to translate a
+ * Ant stack frame into a source file name
+ */
+public class AntSourceLookupParticipant extends AbstractSourceLookupParticipant {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.sourcelookup.ISourceLookupParticipant#getSourceName(java.lang.Object)
+ */
+ public String getSourceName(Object object) throws CoreException {
+ if (object instanceof AntStackFrame) {
+ return ((AntStackFrame)object).getFilePath();
+ }
+ if (object instanceof String) {
+ // assume it's a file name
+ return (String)object;
+ }
+ return null;
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourcePathComputerDelegate.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourcePathComputerDelegate.java
new file mode 100644
index 000000000..67e216f03
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/AntSourcePathComputerDelegate.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.sourcelookup.ISourceContainer;
+import org.eclipse.debug.core.sourcelookup.ISourcePathComputerDelegate;
+
+/**
+ * Computes the default source lookup path for an Ant launch configuration.
+ * The default source lookup is a container that knows how to map the
+ * fully qualified file system paths to either the <code>IFile</code> within the workspace or
+ * a <code>LocalFileStorage</code> for buildfiles not in the workspace.
+ */
+public class AntSourcePathComputerDelegate implements ISourcePathComputerDelegate {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.sourcelookup.ISourcePathComputerDelegate#computeSourceContainers(org.eclipse.debug.core.ILaunchConfiguration, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public ISourceContainer[] computeSourceContainers(ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException {
+ return new ISourceContainer[] {new AntSourceContainer()};
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/IAntDebugConstants.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/IAntDebugConstants.java
new file mode 100644
index 000000000..c53e121a2
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/IAntDebugConstants.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.launching.debug;
+
+public interface IAntDebugConstants {
+
+ /**
+ * Unique identifier for the Ant debug model (value
+ * <code>org.eclipse.ant.ui.debug</code>).
+ */
+ public static final String ID_ANT_DEBUG_MODEL = "org.eclipse.ant.ui.debug"; //$NON-NLS-1$
+
+ /**
+ * Unique identifier for the Ant line breakpoint markers
+ * (value <code>org.eclipse.ant.ui.antLineBreakpointMarker</code>).
+ */
+ public static final String ID_ANT_LINE_BREAKPOINT_MARKER= "org.eclipse.ant.ui.antLineBreakpointMarker"; //$NON-NLS-1$
+
+ /**
+ * Unique identifier for the Ant run to line breakpoints
+ * (value <code>org.eclipse.ant.ui.runToLineBreakpoint</code>).
+ */
+ public static final String ANT_RUN_TO_LINE= "org.eclipse.ant.ui.runToLineBreakpoint"; //$NON-NLS-1$
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntDebugElement.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntDebugElement.java
new file mode 100644
index 000000000..07a952802
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntDebugElement.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug.model;
+
+
+import org.eclipse.ant.internal.launching.AntLaunching;
+import org.eclipse.ant.internal.launching.debug.IAntDebugConstants;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.model.DebugElement;
+
+/**
+ * Common function of Ant debug model elements
+ */
+public abstract class AntDebugElement extends DebugElement {
+
+ /**
+ * Constructs a new debug element contained in the given
+ * debug target.
+ *
+ * @param target debug target
+ */
+ public AntDebugElement(AntDebugTarget target) {
+ super(target);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()
+ */
+ public String getModelIdentifier() {
+ return IAntDebugConstants.ID_ANT_DEBUG_MODEL;
+ }
+
+ /**
+ * Throws a debug exception with the given message, error code, and underlying
+ * exception.
+ */
+ protected void throwDebugException(String message) throws DebugException {
+ throw new DebugException(new Status(IStatus.ERROR, AntLaunching.getUniqueIdentifier(),
+ DebugException.TARGET_REQUEST_FAILED, message, null));
+ }
+
+ protected AntDebugTarget getAntDebugTarget() {
+ return (AntDebugTarget)super.getDebugTarget();
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntLineBreakpoint.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntLineBreakpoint.java
new file mode 100644
index 000000000..2a96b5bd9
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntLineBreakpoint.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug.model;
+
+import com.ibm.icu.text.MessageFormat;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.ant.internal.launching.debug.IAntDebugConstants;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.model.IBreakpoint;
+import org.eclipse.debug.core.model.LineBreakpoint;
+
+/**
+ * Ant line breakpoint
+ */
+public class AntLineBreakpoint extends LineBreakpoint {
+
+ /**
+ * Default constructor is required for the breakpoint manager
+ * to re-create persisted breakpoints. After instantiating a breakpoint,
+ * the <code>setMarker(...)</code> method is called to restore
+ * this breakpoint's attributes.
+ */
+ public AntLineBreakpoint() {
+ }
+
+ /**
+ * Constructs a line breakpoint on the given resource at the given
+ * line number. The line number is 1-based (i.e. the first line of a
+ * file is line number 1).
+ *
+ * @param resource file on which to set the breakpoint
+ * @param lineNumber 1-based line number of the breakpoint
+ * @throws CoreException if unable to create the breakpoint
+ */
+ public AntLineBreakpoint(IResource resource, int lineNumber) throws CoreException {
+ this(resource, lineNumber, new HashMap(), true);
+ }
+
+ /**
+ * Constructs a line breakpoint on the given resource at the given
+ * line number. The line number is 1-based (i.e. the first line of a
+ * file is line number 1).
+ *
+ * @param resource file on which to set the breakpoint
+ * @param lineNumber 1-based line number of the breakpoint
+ * @param attributes the marker attributes to set
+ * @param register whether to add this breakpoint to the breakpoint manager
+ * @throws CoreException if unable to create the breakpoint
+ */
+ public AntLineBreakpoint(final IResource resource, final int lineNumber, final Map attributes, final boolean register) throws CoreException {
+ IWorkspaceRunnable wr= new IWorkspaceRunnable() {
+ public void run(IProgressMonitor monitor) throws CoreException {
+ IMarker marker = resource.createMarker(IAntDebugConstants.ID_ANT_LINE_BREAKPOINT_MARKER);
+ setMarker(marker);
+ attributes.put(IBreakpoint.ENABLED, Boolean.TRUE);
+ attributes.put(IMarker.LINE_NUMBER, new Integer(lineNumber));
+ attributes.put(IBreakpoint.ID, IAntDebugConstants.ID_ANT_DEBUG_MODEL);
+ attributes.put(IMarker.MESSAGE, MessageFormat.format(DebugModelMessages.AntLineBreakpoint_0, new String[] {Integer.toString(lineNumber)}));
+ ensureMarker().setAttributes(attributes);
+
+ register(register);
+ }
+ };
+ run(getMarkerRule(resource), wr);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IBreakpoint#getModelIdentifier()
+ */
+ public String getModelIdentifier() {
+ return IAntDebugConstants.ID_ANT_DEBUG_MODEL;
+ }
+
+ /**
+ * @return whether this breakpoint is a run to line breakpoint
+ */
+ public boolean isRunToLine() {
+ try {
+ return ensureMarker().getAttribute(IAntDebugConstants.ANT_RUN_TO_LINE, false);
+ } catch (DebugException e) {
+ return false;
+ }
+ }
+
+ /**
+ * Add this breakpoint to the breakpoint manager,
+ * or sets it as unregistered.
+ */
+ private void register(boolean register) throws CoreException {
+ if (register) {
+ DebugPlugin.getDefault().getBreakpointManager().addBreakpoint(this);
+ } else {
+ setRegistered(false);
+ }
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntProperties.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntProperties.java
new file mode 100644
index 000000000..4f93fec49
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntProperties.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug.model;
+
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.model.IValue;
+import org.eclipse.debug.core.model.IVariable;
+
+public class AntProperties extends AntDebugElement implements IVariable {
+
+ private IValue fValue;
+ private String fName;
+ private boolean fValid= true;
+
+ public AntProperties(AntDebugTarget target, String name) {
+ super(target);
+ fName= name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IVariable#getValue()
+ */
+ public synchronized IValue getValue() throws DebugException {
+ int attempts= 0;
+ while (!fValid && !getDebugTarget().isTerminated()) {
+ try {
+ wait(50);
+ } catch (InterruptedException e) {
+ }
+ if (attempts == 20 && !fValid && !getDebugTarget().isTerminated()) {
+ throwDebugException(DebugModelMessages.AntProperties_1);
+ }
+ attempts++;
+ }
+ return fValue;
+ }
+
+ public IValue getLastValue() {
+ return fValue;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IVariable#getName()
+ */
+ public String getName() {
+ return fName;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IVariable#getReferenceTypeName()
+ */
+ public String getReferenceTypeName() {
+ return ""; //$NON-NLS-1$
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IVariable#hasValueChanged()
+ */
+ public boolean hasValueChanged() {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValueModification#setValue(java.lang.String)
+ */
+ public void setValue(String expression) {
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValueModification#setValue(org.eclipse.debug.core.model.IValue)
+ */
+ public void setValue(IValue value) {
+ fValue= value;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValueModification#supportsValueModification()
+ */
+ public boolean supportsValueModification() {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValueModification#verifyValue(java.lang.String)
+ */
+ public boolean verifyValue(String expression) {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValueModification#verifyValue(org.eclipse.debug.core.model.IValue)
+ */
+ public boolean verifyValue(IValue value) {
+ return false;
+ }
+
+ public synchronized void setValid(boolean valid) {
+ fValid= valid;
+ notifyAll();
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntPropertiesValue.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntPropertiesValue.java
new file mode 100644
index 000000000..2ec303ce0
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntPropertiesValue.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Brock Janiczak (brockj@tpg.com.au) - bug 154907
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug.model;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import org.eclipse.debug.core.model.IValue;
+import org.eclipse.debug.core.model.IVariable;
+
+public class AntPropertiesValue extends AntDebugElement implements IValue {
+
+ private List fProperties= new ArrayList();
+
+ public AntPropertiesValue(AntDebugTarget target) {
+ super(target);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValue#getReferenceTypeName()
+ */
+ public String getReferenceTypeName() {
+ return ""; //$NON-NLS-1$
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValue#getValueString()
+ */
+ public String getValueString() {
+ return ""; //$NON-NLS-1$
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValue#isAllocated()
+ */
+ public boolean isAllocated() {
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValue#getVariables()
+ */
+ public IVariable[] getVariables() {
+ Collections.sort(fProperties);
+ return (IVariable[])fProperties.toArray(new IVariable[fProperties.size()]);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValue#hasVariables()
+ */
+ public boolean hasVariables() {
+ return true;
+ }
+
+ protected void addProperties(List properties) {
+ fProperties.addAll(properties);
+ }
+
+ public List getProperties() {
+ return fProperties;
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntProperty.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntProperty.java
new file mode 100644
index 000000000..9a699da01
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntProperty.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ * Brock Janiczak (brockj@tpg.com.au) - bug 154907
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug.model;
+
+import org.eclipse.debug.core.model.IValue;
+import org.eclipse.debug.core.model.IVariable;
+
+/**
+ * A property in an Ant build.
+ */
+public class AntProperty extends AntDebugElement implements IVariable, Comparable {
+
+ private String fName;
+ private AntValue fValue;
+ private String fLabel;
+
+ /**
+ * Constructs a variable associated with the debug target
+ * with the given name and value.
+ *
+ * @param target the debug target
+ * @param name property name
+ * @param value property value
+ */
+ public AntProperty(AntDebugTarget target, String name, String value) {
+ super(target);
+ fName = name;
+ fValue= new AntValue(target, value);
+ }
+
+ /*
+ * @see org.eclipse.debug.core.model.IVariable#getValue()
+ */
+ public IValue getValue() {
+ return fValue;
+ }
+
+ /*
+ * @see org.eclipse.debug.core.model.IVariable#getName()
+ */
+ public String getName() {
+ return fName;
+ }
+
+ /*
+ * @see org.eclipse.debug.core.model.IVariable#getReferenceTypeName()
+ */
+ public String getReferenceTypeName() {
+ return ""; //$NON-NLS-1$
+ }
+
+ /*
+ * @see org.eclipse.debug.core.model.IVariable#hasValueChanged()
+ */
+ public boolean hasValueChanged() {
+ return false;
+ }
+
+ /*
+ * @see org.eclipse.debug.core.model.IValueModification#setValue(java.lang.String)
+ */
+ public void setValue(String expression) {
+ }
+
+ /*
+ * @see org.eclipse.debug.core.model.IValueModification#setValue(org.eclipse.debug.core.model.IValue)
+ */
+ public void setValue(IValue value) {
+ }
+
+ /*
+ * @see org.eclipse.debug.core.model.IValueModification#supportsValueModification()
+ */
+ public boolean supportsValueModification() {
+ return false;
+ }
+
+ /*
+ * @see org.eclipse.debug.core.model.IValueModification#verifyValue(java.lang.String)
+ */
+ public boolean verifyValue(String expression) {
+ return false;
+ }
+
+ /*
+ * @see org.eclipse.debug.core.model.IValueModification#verifyValue(org.eclipse.debug.core.model.IValue)
+ */
+ public boolean verifyValue(IValue value) {
+ return false;
+ }
+
+ /**
+ * @return the text used to render this property
+ */
+ public String getText() {
+ if (fLabel == null) {
+ StringBuffer buffer= new StringBuffer(getName());
+ buffer.append("= "); //$NON-NLS-1$
+ buffer.append(fValue.getValueString());
+ fLabel= buffer.toString();
+ }
+ return fLabel;
+ }
+
+ /*
+ * @see java.lang.Comparable#compareTo(java.lang.Object)
+ */
+ public int compareTo(Object other) {
+ AntProperty otherProperty = (AntProperty) other;
+ return fName.compareToIgnoreCase(otherProperty.getName());
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntStackFrame.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntStackFrame.java
new file mode 100644
index 000000000..a72a712c1
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntStackFrame.java
@@ -0,0 +1,314 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug.model;
+
+import org.eclipse.ant.internal.launching.AntLaunchingUtil;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.model.IRegisterGroup;
+import org.eclipse.debug.core.model.IStackFrame;
+import org.eclipse.debug.core.model.IThread;
+import org.eclipse.debug.core.model.IVariable;
+
+/**
+ * Ant stack frame.
+ */
+public class AntStackFrame extends AntDebugElement implements IStackFrame {
+
+ private AntThread fThread;
+ private String fName;
+ private int fLineNumber;
+ private String fFilePath;
+ private int fId;
+ private String fFullPath;
+
+ /**
+ * Constructs a stack frame in the given thread with the given id.
+ *
+ * @param antThread
+ * @param id stack frame id (0 is the top of the stack)
+ */
+ public AntStackFrame(AntThread antThread, int id, String name, String fullPath, int lineNumber) {
+ super((AntDebugTarget) antThread.getDebugTarget());
+ fId = id;
+ fThread = antThread;
+ fLineNumber= lineNumber;
+ fName= name;
+ setFilePath(fullPath);
+ }
+
+ public void setId(int id) {
+ fId= id;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStackFrame#getThread()
+ */
+ public IThread getThread() {
+ return fThread;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStackFrame#getVariables()
+ */
+ public IVariable[] getVariables() throws DebugException {
+ return fThread.getVariables();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStackFrame#hasVariables()
+ */
+ public boolean hasVariables() {
+ return isSuspended();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStackFrame#getLineNumber()
+ */
+ public int getLineNumber() {
+ return fLineNumber;
+ }
+
+ public void setLineNumber(int lineNumber) {
+ fLineNumber= lineNumber;
+ }
+
+ public void setFilePath(String fullPath) {
+ fFullPath= fullPath;
+ IFile file= AntLaunchingUtil.getFileForLocation(fullPath, null);
+ if (file != null) {
+ fFilePath= file.getProjectRelativePath().toString();
+ } else {
+ fFilePath= new Path(fullPath).lastSegment();
+ }
+ }
+
+ public String getFilePath() {
+ return fFullPath;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStackFrame#getCharStart()
+ */
+ public int getCharStart() {
+ return -1;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStackFrame#getCharEnd()
+ */
+ public int getCharEnd() {
+ return -1;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStackFrame#getName()
+ */
+ public String getName() {
+ return fName;
+ }
+
+ public void setName(String name) {
+ fName= name;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStackFrame#getRegisterGroups()
+ */
+ public IRegisterGroup[] getRegisterGroups() {
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStackFrame#hasRegisterGroups()
+ */
+ public boolean hasRegisterGroups() {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStep#canStepInto()
+ */
+ public boolean canStepInto() {
+ return getThread().canStepInto();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStep#canStepOver()
+ */
+ public boolean canStepOver() {
+ return getThread().canStepOver();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStep#canStepReturn()
+ */
+ public boolean canStepReturn() {
+ return getThread().canStepReturn();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStep#isStepping()
+ */
+ public boolean isStepping() {
+ return getThread().isStepping();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStep#stepInto()
+ */
+ public void stepInto() throws DebugException {
+ getThread().stepInto();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStep#stepOver()
+ */
+ public void stepOver() throws DebugException {
+ getThread().stepOver();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IStep#stepReturn()
+ */
+ public void stepReturn() throws DebugException {
+ getThread().stepReturn();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.ISuspendResume#canResume()
+ */
+ public boolean canResume() {
+ return getThread().canResume();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.ISuspendResume#canSuspend()
+ */
+ public boolean canSuspend() {
+ return getThread().canSuspend();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.ISuspendResume#isSuspended()
+ */
+ public boolean isSuspended() {
+ return getThread().isSuspended();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.ISuspendResume#resume()
+ */
+ public void resume() throws DebugException {
+ getThread().resume();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.ISuspendResume#suspend()
+ */
+ public void suspend() throws DebugException {
+ getThread().suspend();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.ITerminate#canTerminate()
+ */
+ public boolean canTerminate() {
+ return getThread().canTerminate();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.ITerminate#isTerminated()
+ */
+ public boolean isTerminated() {
+ return getThread().isTerminated();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.ITerminate#terminate()
+ */
+ public void terminate() throws DebugException {
+ getThread().terminate();
+ }
+
+ /**
+ * Returns the name of the buildfile this stack frame is associated
+ * with.
+ *
+ * @return the name of the buildfile this stack frame is associated
+ * with
+ */
+ public String getSourceName() {
+ return fFilePath;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals(Object obj) {
+ if (obj instanceof AntStackFrame) {
+ AntStackFrame sf = (AntStackFrame)obj;
+ if (getSourceName() != null) {
+ return getSourceName().equals(sf.getSourceName()) &&
+ sf.getLineNumber() == getLineNumber() &&
+ sf.fId == fId;
+ }
+ return sf.fId == fId;
+ }
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ public int hashCode() {
+ if (getSourceName() == null) {
+ return fId;
+ }
+ return getSourceName().hashCode() + fId;
+ }
+
+ /**
+ * Returns this stack frame's unique identifier within its thread
+ *
+ * @return this stack frame's unique identifier within its thread
+ */
+ protected int getIdentifier() {
+ return fId;
+ }
+
+ /**
+ * Returns the system, user or runtime property
+ * name, or <code>null</code> if unable to resolve a property with the name.
+ *
+ * @param propertyName the name of the variable to search for
+ * @return a property, or <code>null</code> if none
+ */
+ public AntProperty findProperty(String propertyName) {
+ try {
+ IVariable[] groups= getVariables();
+ for (int i = 0; i < groups.length; i++) {
+ AntProperties propertiesGrouping = (AntProperties) groups[i];
+ AntPropertiesValue value= (AntPropertiesValue) propertiesGrouping.getValue();
+ IVariable[] properties= value.getVariables();
+ for (int j = 0; j < properties.length; j++) {
+ AntProperty property = (AntProperty) properties[j];
+ if (property.getName().equals(propertyName)) {
+ return property;
+ }
+ }
+ }
+ } catch (DebugException e) {
+ }
+ return null;
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntValue.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntValue.java
new file mode 100644
index 000000000..2285279be
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/AntValue.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug.model;
+
+import org.eclipse.ant.internal.launching.debug.IAntDebugConstants;
+import org.eclipse.debug.core.model.IValue;
+import org.eclipse.debug.core.model.IVariable;
+
+public class AntValue extends AntDebugElement implements IValue {
+
+ private String fValueString;
+ protected static final IVariable[] EMPTY = new IVariable[0];
+
+ /**
+ * @param target
+ */
+ public AntValue(AntDebugTarget target, String value) {
+ super(target);
+ fValueString= value;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValue#getReferenceTypeName()
+ */
+ public String getReferenceTypeName() {
+ return ""; //$NON-NLS-1$
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValue#getValueString()
+ */
+ public String getValueString() {
+ return fValueString;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValue#isAllocated()
+ */
+ public boolean isAllocated() {
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValue#getVariables()
+ */
+ public IVariable[] getVariables() {
+ return EMPTY;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IValue#hasVariables()
+ */
+ public boolean hasVariables() {
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier()
+ */
+ public String getModelIdentifier() {
+ return IAntDebugConstants.ID_ANT_DEBUG_MODEL;
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugMessageIds.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugMessageIds.java
new file mode 100644
index 000000000..fcc8f3ed2
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugMessageIds.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.debug.model;
+
+
+public class DebugMessageIds {
+
+ public final static String MESSAGE_DELIMITER= ","; //$NON-NLS-1$
+
+ public final static String BUILD_STARTED= "build_started"; //$NON-NLS-1$
+ public final static String TARGET_STARTED= "target_started"; //$NON-NLS-1$
+ public final static String TARGET_FINISHED= "target_finished"; //$NON-NLS-1$
+ public final static String TASK_STARTED= "task_started"; //$NON-NLS-1$
+ public final static String TASK_FINISHED= "task_finished"; //$NON-NLS-1$
+
+ public final static String STEP= "step"; //$NON-NLS-1$
+ public final static String STEP_OVER= "step_over"; //$NON-NLS-1$
+ public final static String STEP_INTO= "step_into"; //$NON-NLS-1$
+
+ public final static String TERMINATE= "terminate"; //$NON-NLS-1$
+ public final static String TERMINATED= "terminated"; //$NON-NLS-1$
+ public final static String SUSPEND= "suspend"; //$NON-NLS-1$
+ public final static String SUSPENDED= "suspended"; //$NON-NLS-1$
+ public final static String RESUME= "resume"; //$NON-NLS-1$
+
+ public final static String STACK= "stack"; //$NON-NLS-1$
+
+ public final static String ADD_BREAKPOINT= "add"; //$NON-NLS-1$
+ public final static String REMOVE_BREAKPOINT= "remove"; //$NON-NLS-1$
+
+ public final static String CLIENT_REQUEST= "client"; //$NON-NLS-1$
+ public final static String BREAKPOINT= "breakpoint"; //$NON-NLS-1$
+
+ public final static String PROPERTIES= "prop"; //$NON-NLS-1$
+ public final static String PROPERTY_VALUE= "value"; //$NON-NLS-1$
+ public final static int PROPERTY_USER= 0;
+ public final static int PROPERTY_SYSTEM= 1;
+ public final static int PROPERTY_RUNTIME= 2;
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugModelMessages.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugModelMessages.java
new file mode 100644
index 000000000..acadad642
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugModelMessages.java
@@ -0,0 +1,32 @@
+/**********************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+package org.eclipse.ant.internal.launching.debug.model;
+
+import org.eclipse.osgi.util.NLS;
+
+public class DebugModelMessages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.ant.internal.launching.debug.model.DebugModelMessages";//$NON-NLS-1$
+
+ public static String AntDebugTarget_0;
+
+ public static String AntLineBreakpoint_0;
+ public static String AntThread_0;
+ public static String AntThread_1;
+ public static String AntThread_2;
+ public static String AntThread_3;
+ public static String AntThread_4;
+
+ public static String AntProperties_1;
+
+ static {
+ // load message values from bundle file
+ NLS.initializeMessages(BUNDLE_NAME, DebugModelMessages.class);
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugModelMessages.properties b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugModelMessages.properties
new file mode 100644
index 000000000..31cf84398
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/debug/model/DebugModelMessages.properties
@@ -0,0 +1,21 @@
+###############################################################################
+# Copyright (c) 2004, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+AntDebugTarget_0=Ant Build
+
+AntLineBreakpoint_0=Ant breakpoint [line: {0}]
+AntThread_0=User Properties
+AntThread_1=System Properties
+AntThread_2=Runtime Properties
+AntThread_3=Request to retrieve Ant stack frames failed
+AntThread_4=Request to retrieve Ant properties failed
+
+AntProperties_1=Request to Ant properties value failed
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntClasspathProvider.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntClasspathProvider.java
new file mode 100644
index 000000000..e4f8b36cf
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntClasspathProvider.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.launching.launchConfigurations;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jdt.launching.StandardClasspathProvider;
+
+public class AntClasspathProvider extends StandardClasspathProvider {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.launching.IRuntimeClasspathProvider#computeUnresolvedClasspath(org.eclipse.debug.core.ILaunchConfiguration)
+ */
+ public IRuntimeClasspathEntry[] computeUnresolvedClasspath(ILaunchConfiguration configuration) throws CoreException {
+ boolean useDefault = configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, true);
+ if (useDefault) {
+ List rtes = new ArrayList(10);
+ IRuntimeClasspathEntry jreEntry = null;
+ try {
+ jreEntry = JavaRuntime.computeJREEntry(configuration);
+ } catch (CoreException e) {
+ // not a java project
+ }
+ if (jreEntry == null) {
+ jreEntry = JavaRuntime.newRuntimeContainerClasspathEntry(
+ JavaRuntime.newDefaultJREContainerPath(), IRuntimeClasspathEntry.STANDARD_CLASSES);
+ }
+ rtes.add(jreEntry);
+ rtes.add(new AntHomeClasspathEntry());
+ rtes.add(new ContributedClasspathEntriesEntry());
+ return (IRuntimeClasspathEntry[]) rtes.toArray(new IRuntimeClasspathEntry[rtes.size()]);
+ }
+ return super.computeUnresolvedClasspath(configuration);
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntHomeClasspathEntry.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntHomeClasspathEntry.java
new file mode 100644
index 000000000..1a8a9bf7c
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntHomeClasspathEntry.java
@@ -0,0 +1,210 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.launchConfigurations;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.ant.core.AntCorePlugin;
+import org.eclipse.ant.core.AntCorePreferences;
+import org.eclipse.ant.core.IAntClasspathEntry;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.jdt.internal.launching.AbstractRuntimeClasspathEntry;
+import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import com.ibm.icu.text.MessageFormat;
+
+/**
+ * A classpath entry that contains a set of archives for a particular
+ * ANT_HOME.
+ *
+ * @since 3.0
+ */
+public class AntHomeClasspathEntry extends AbstractRuntimeClasspathEntry {
+
+ public static final String TYPE_ID = "org.eclipse.ant.ui.classpathentry.antHome"; //$NON-NLS-1$
+
+ /**
+ * Local path on disk where Ant Home is located or <code>null</code>
+ * to indicate the use of the default Ant Home.
+ */
+ private String antHomeLocation = null;
+
+ /**
+ * Creates an AntHome entry for the default AntHome installation.
+ */
+ public AntHomeClasspathEntry() {
+ antHomeLocation = null;
+ }
+
+ /**
+ * Constructs an AntHome entry for the Ant installed at the specified
+ * root directory.
+ *
+ * @param antHome path in the local file system to an Ant installation
+ */
+ public AntHomeClasspathEntry(String antHome) {
+ antHomeLocation = antHome;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.internal.launching.AbstractRuntimeClasspathEntry#buildMemento(org.w3c.dom.Document, org.w3c.dom.Element)
+ */
+ protected void buildMemento(Document document, Element memento) throws CoreException {
+ if (antHomeLocation == null) {
+ memento.setAttribute("default", "true"); //$NON-NLS-1$//$NON-NLS-2$
+ } else {
+ memento.setAttribute("antHome", new Path(antHomeLocation).toString()); //$NON-NLS-1$
+ }
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.internal.launching.IRuntimeClasspathEntry2#initializeFrom(org.w3c.dom.Element)
+ */
+ public void initializeFrom(Element memento) throws CoreException {
+ String antHome = memento.getAttribute("antHome"); //$NON-NLS-1$
+ if (antHome != null && (antHome.length() > 0)) {
+ IPath path = new Path(antHome);
+ antHomeLocation = path.toOSString();
+ } else {
+ antHomeLocation = null;
+ }
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry2#getTypeId()
+ */
+ public String getTypeId() {
+ return TYPE_ID;
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry2#getRuntimeClasspathEntries(org.eclipse.debug.core.ILaunchConfiguration)
+ */
+ public IRuntimeClasspathEntry[] getRuntimeClasspathEntries(ILaunchConfiguration configuration) throws CoreException {
+ List libs = new ArrayList(40);
+ AntCorePreferences preferences = AntCorePlugin.getPlugin().getPreferences();
+ if (antHomeLocation == null) {
+ IAntClasspathEntry[] entries = preferences.getAntHomeClasspathEntries();
+ for (int i = 0; i < entries.length; i++) {
+ IAntClasspathEntry entry = entries[i];
+ libs.add(JavaRuntime.newStringVariableClasspathEntry(entry.getLabel()));
+ }
+ } else {
+ File lib= resolveAntHome();
+ IPath libDir = new Path(antHomeLocation).append("lib"); //$NON-NLS-1$
+ String[] fileNames = lib.list();
+ for (int i = 0; i < fileNames.length; i++) {
+ String name = fileNames[i];
+ IPath path = new Path(name);
+ String fileExtension = path.getFileExtension();
+ if ("jar".equalsIgnoreCase(fileExtension)) { //$NON-NLS-1$
+ libs.add(JavaRuntime.newArchiveRuntimeClasspathEntry(libDir.append(path)));
+ }
+ }
+ }
+ return (IRuntimeClasspathEntry[]) libs.toArray(new IRuntimeClasspathEntry[libs.size()]);
+ }
+
+ public File resolveAntHome() throws CoreException {
+ if (antHomeLocation == null) { //using the default ant home
+ return null;
+ }
+ IPath libDir= new Path(antHomeLocation).append("lib"); //$NON-NLS-1$
+ File lib= libDir.toFile();
+ File parentDir= lib.getParentFile();
+ if (parentDir == null || !parentDir.exists()) {
+ abort(MessageFormat.format(AntLaunchConfigurationMessages.AntHomeClasspathEntry_10, new String[] {antHomeLocation}), null);
+ }
+ if (!lib.exists() || !lib.isDirectory()) {
+ abort(MessageFormat.format(AntLaunchConfigurationMessages.AntHomeClasspathEntry_11, new String[] {antHomeLocation}), null);
+ }
+ return lib;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry2#getName()
+ */
+ public String getName() {
+ if (antHomeLocation == null) {
+ return AntLaunchConfigurationMessages.AntHomeClasspathEntry_8;
+ }
+ return MessageFormat.format(AntLaunchConfigurationMessages.AntHomeClasspathEntry_9, new String[]{antHomeLocation});
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry#getType()
+ */
+ public int getType() {
+ return IRuntimeClasspathEntry.OTHER;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.launching.IRuntimeClasspathEntry2#isComposite()
+ */
+ public boolean isComposite() {
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#equals(java.lang.Object)
+ */
+ public boolean equals(Object obj) {
+ return obj instanceof AntHomeClasspathEntry &&
+ equalsOrNull(antHomeLocation, ((AntHomeClasspathEntry)obj).antHomeLocation);
+ }
+
+ /**
+ * Return whether s1 is equivalent to s2.
+ *
+ * @param s1
+ * @param s2
+ * @return whether s1 is equivalent to s2
+ */
+ private boolean equalsOrNull(String s1, String s2) {
+ if (s1 == null || s2 == null) {
+ return s1 == s2;
+ }
+ return s1.equalsIgnoreCase(s2);
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#hashCode()
+ */
+ public int hashCode() {
+ return getClass().hashCode();
+ }
+
+ /**
+ * Sets the ant home to use.
+ *
+ * @param path path to toor of an ant home installation
+ */
+ public void setAntHome(String path) {
+ antHomeLocation = path;
+ }
+
+ /**
+ * Returns the ant home location
+ *
+ * @return path to root ant installation directory
+ */
+ public String getAntHome() {
+ if (antHomeLocation == null) {
+ return AntCorePlugin.getPlugin().getPreferences().getAntHome();
+ }
+ return antHomeLocation;
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntJavaLaunchDelegate.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntJavaLaunchDelegate.java
new file mode 100644
index 000000000..ac08c65cf
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntJavaLaunchDelegate.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.launchConfigurations;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.jdt.launching.JavaLaunchDelegate;
+
+/**
+ * Used by the AntLaunchDelegate for Ant builds in a separate VM
+ * The subclassing is needed to be able to launch an Ant build from a non-Java project
+ */
+public class AntJavaLaunchDelegate extends JavaLaunchDelegate {
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate2#preLaunchCheck(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public boolean preLaunchCheck(ILaunchConfiguration configuration,String mode, IProgressMonitor monitor) throws CoreException {
+ try {
+ return super.preLaunchCheck(configuration, mode, monitor);
+ } catch (CoreException ce) {
+ //likely dealing with a non-Java project
+ }
+ //no need to check for breakpoints as always in run mode
+ return true;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate#getProgramArguments(org.eclipse.debug.core.ILaunchConfiguration)
+ */
+ public String getProgramArguments(ILaunchConfiguration configuration) throws CoreException {
+ try {
+ return super.getProgramArguments(configuration);
+ } catch (CoreException ce) {
+ }
+ return configuration.getAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, ""); //$NON-NLS-1$
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntLaunchConfigurationMessages.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntLaunchConfigurationMessages.java
new file mode 100644
index 000000000..30c7df3b9
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntLaunchConfigurationMessages.java
@@ -0,0 +1,37 @@
+/**********************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others. All rights reserved. This
+ * program and the accompanying materials are made available under the terms of
+ * the Eclipse Public License v1.0 which accompanies this distribution, and is
+ * available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ * dakshinamurthy.karra@gmail.com - bug 165371
+ **********************************************************************/
+package org.eclipse.ant.internal.launching.launchConfigurations;
+
+import org.eclipse.osgi.util.NLS;
+
+public class AntLaunchConfigurationMessages extends NLS {
+ private static final String BUNDLE_NAME = "org.eclipse.ant.internal.launching.launchConfigurations.AntLaunchConfigurationMessages";//$NON-NLS-1$
+
+ public static String AntLaunchDelegate_Launching__0__1;
+ public static String AntLaunchDelegate_Running__0__2;
+ public static String AntLaunchDelegate_Build_In_Progress;
+ public static String AntLaunchDelegate_Failure;
+ public static String AntLaunchDelegate_22;
+ public static String AntLaunchDelegate_23;
+ public static String AntLaunchDelegate_28;
+
+ public static String AntHomeClasspathEntry_8;
+ public static String AntHomeClasspathEntry_9;
+ public static String AntHomeClasspathEntry_10;
+ public static String AntHomeClasspathEntry_11;
+
+ public static String ContributedClasspathEntriesEntry_1;
+
+ static {
+ // load message values from bundle file
+ NLS.initializeMessages(BUNDLE_NAME, AntLaunchConfigurationMessages.class);
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntLaunchConfigurationMessages.properties b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntLaunchConfigurationMessages.properties
new file mode 100644
index 000000000..e66165576
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntLaunchConfigurationMessages.properties
@@ -0,0 +1,26 @@
+###############################################################################
+# Copyright (c) 2000, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+# dakshinamurthy.karra@gmail.com - bug 165371
+###############################################################################
+
+AntLaunchDelegate_Launching__0__1=Launching {0}
+AntLaunchDelegate_Running__0__2=Running {0}
+AntLaunchDelegate_Build_In_Progress=Ant build {0} already in progress. Concurrent Ant builds are possible if you specify to build in a separate JRE.
+AntLaunchDelegate_Failure=Failure of Background Ant Build
+AntLaunchDelegate_22=&Do not show error dialog when Ant build fails
+AntLaunchDelegate_23=Ant Build Failed
+AntLaunchDelegate_28=Waiting for virtual machine to exit...
+
+AntHomeClasspathEntry_8=Ant Home (Default)
+AntHomeClasspathEntry_9=Ant Home ({0})
+AntHomeClasspathEntry_10=Ant Home {0} does not exist
+AntHomeClasspathEntry_11=Ant Home {0} does not contain a "lib" directory
+
+ContributedClasspathEntriesEntry_1=Additional Tasks & Support \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntMigrationDelegate.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntMigrationDelegate.java
new file mode 100644
index 000000000..bd568321d
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntMigrationDelegate.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.launchConfigurations;
+
+import org.eclipse.ant.internal.launching.AntLaunchingUtil;
+import org.eclipse.core.externaltools.internal.IExternalToolConstants;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.variables.IStringVariableManager;
+import org.eclipse.core.variables.VariablesPlugin;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationMigrationDelegate;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+
+/**
+ * Delegate for migrating Ant launch configurations.
+ * The migration process involves a resource mapping being created such that launch configurations
+ * can be filtered from the launch configuration dialog based on resource availability.
+ *
+ * @since 3.2
+ */
+public class AntMigrationDelegate implements ILaunchConfigurationMigrationDelegate {
+
+ /**
+ * Method to get the file for the specified launch configuration that should be mapped to the launch configuration
+ *
+ * @param candidate the launch configuration that the file will be mapped to.
+ * @return the buildfile or <code>null</code> if not in the workspace
+ */
+ protected IFile getFileForCandidate(ILaunchConfiguration candidate) {
+ IFile file= null;
+ String expandedLocation= null;
+ String location= null;
+ IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
+ try {
+ location= candidate.getAttribute(IExternalToolConstants.ATTR_LOCATION, (String)null);
+ if (location != null) {
+ expandedLocation= manager.performStringSubstitution(location);
+ if (expandedLocation != null) {
+ file= AntLaunchingUtil.getFileForLocation(expandedLocation, null);
+ }
+ }
+ } catch (CoreException e) {
+ }
+ return file;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.ILaunchConfigurationMigrationDelegate#isCandidate()
+ */
+ public boolean isCandidate(ILaunchConfiguration candidate) throws CoreException {
+ IResource[] mappedResources = candidate.getMappedResources();
+ if (mappedResources != null && mappedResources.length > 0) {
+ return false;
+ }
+ return getFileForCandidate(candidate) != null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.ILaunchConfigurationMigrationDelegate#migrate(org.eclipse.debug.core.ILaunchConfiguration)
+ */
+ public void migrate(ILaunchConfiguration candidate) throws CoreException {
+ IFile file = getFileForCandidate(candidate);
+ ILaunchConfigurationWorkingCopy wc = candidate.getWorkingCopy();
+ wc.setMappedResources(new IResource[] {file});
+ wc.doSave();
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntStreamMonitor.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntStreamMonitor.java
new file mode 100644
index 000000000..cf6199f60
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntStreamMonitor.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.launchConfigurations;
+
+import org.eclipse.core.runtime.ListenerList;
+import org.eclipse.debug.core.IStreamListener;
+import org.eclipse.debug.core.model.IFlushableStreamMonitor;
+
+/**
+ * Stream monitor implementation for an Ant build process.
+ */
+public class AntStreamMonitor implements IFlushableStreamMonitor {
+
+ private StringBuffer fContents = new StringBuffer();
+ private ListenerList fListeners = new ListenerList(1);
+ private boolean fBuffered = true;
+
+ /**
+ * @see org.eclipse.debug.core.model.IStreamMonitor#addListener(org.eclipse.debug.core.IStreamListener)
+ */
+ public void addListener(IStreamListener listener) {
+ fListeners.add(listener);
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IStreamMonitor#getContents()
+ */
+ public String getContents() {
+ return fContents.toString();
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IStreamMonitor#removeListener(org.eclipse.debug.core.IStreamListener)
+ */
+ public void removeListener(IStreamListener listener) {
+ fListeners.remove(listener);
+ }
+
+ /**
+ * Appends the given message to this stream, and notifies listeners.
+ *
+ * @param message
+ */
+ public void append(String message) {
+ if (isBuffered()) {
+ fContents.append(message);
+ }
+ Object[] listeners = fListeners.getListeners();
+ for (int i = 0; i < listeners.length; i++) {
+ IStreamListener listener = (IStreamListener)listeners[i];
+ listener.streamAppended(message, this);
+ }
+ }
+ /**
+ * @see org.eclipse.debug.core.model.IFlushableStreamMonitor#flushContents()
+ */
+ public void flushContents() {
+ fContents.setLength(0);
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IFlushableStreamMonitor#isBuffered()
+ */
+ public boolean isBuffered() {
+ return fBuffered;
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IFlushableStreamMonitor#setBuffered(boolean)
+ */
+ public void setBuffered(boolean buffer) {
+ fBuffered = buffer;
+ }
+}
+
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntStreamsProxy.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntStreamsProxy.java
new file mode 100644
index 000000000..66a5e0986
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/AntStreamsProxy.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.internal.launching.launchConfigurations;
+
+
+import org.eclipse.ant.internal.launching.AntLaunching;
+import org.eclipse.debug.core.model.IStreamMonitor;
+import org.eclipse.debug.core.model.IStreamsProxy;
+
+/**
+ *
+ */
+public class AntStreamsProxy implements IStreamsProxy {
+
+ private AntStreamMonitor fErrorMonitor = new AntStreamMonitor();
+ private AntStreamMonitor fOutputMonitor = new AntStreamMonitor();
+
+ public static final String ANT_DEBUG_STREAM = AntLaunching.PLUGIN_ID + ".ANT_DEBUG_STREAM"; //$NON-NLS-1$
+ public static final String ANT_VERBOSE_STREAM = AntLaunching.PLUGIN_ID + ".ANT_VERBOSE_STREAM"; //$NON-NLS-1$
+ public static final String ANT_WARNING_STREAM = AntLaunching.PLUGIN_ID + ".ANT_WARNING_STREAM"; //$NON-NLS-1$
+
+ private AntStreamMonitor fDebugMonitor = new AntStreamMonitor();
+ private AntStreamMonitor fVerboseMonitor = new AntStreamMonitor();
+ private AntStreamMonitor fWarningMonitor = new AntStreamMonitor();
+
+ /**
+ * @see org.eclipse.debug.core.model.IStreamsProxy#getErrorStreamMonitor()
+ */
+ public IStreamMonitor getErrorStreamMonitor() {
+ return fErrorMonitor;
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IStreamsProxy#getOutputStreamMonitor()
+ */
+ public IStreamMonitor getOutputStreamMonitor() {
+ return fOutputMonitor;
+ }
+
+ /**
+ * @see org.eclipse.debug.core.model.IStreamsProxy#write(java.lang.String)
+ */
+ public void write(String input) {
+ }
+
+ public IStreamMonitor getWarningStreamMonitor() {
+ return fWarningMonitor;
+ }
+
+ public IStreamMonitor getDebugStreamMonitor() {
+ return fDebugMonitor;
+ }
+
+ public IStreamMonitor getVerboseStreamMonitor() {
+ return fVerboseMonitor;
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/MessageIds.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/MessageIds.java
new file mode 100644
index 000000000..119e18af7
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/MessageIds.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.launching.launchConfigurations;
+
+public class MessageIds {
+
+ public final static String PROCESS_ID= "processID"; //$NON-NLS-1$
+ public final static String BUILD_CANCELLED= "cancelled"; //$NON-NLS-1$
+ //constants need to start greater than the Project.MSG_* constants
+ public final static String TASK= "6"; //$NON-NLS-1$
+ public final static String TARGET= "7"; //$NON-NLS-1$
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntProcessFactory.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntProcessFactory.java
new file mode 100644
index 000000000..013c13e05
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntProcessFactory.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.launching.launchConfigurations;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.ant.launching.IAntLaunchConstants;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.IProcessFactory;
+import org.eclipse.debug.core.model.IProcess;
+
+public class RemoteAntProcessFactory implements IProcessFactory {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.IProcessFactory#newProcess(org.eclipse.debug.core.ILaunch, java.lang.Process, java.lang.String, java.util.Map)
+ */
+ public IProcess newProcess(ILaunch launch, Process process, String label, Map attributes) {
+ if (attributes == null) {
+ attributes= new HashMap(1);
+ }
+ attributes.put(IProcess.ATTR_PROCESS_TYPE, IAntLaunchConstants.ID_ANT_PROCESS_TYPE);
+ return new RemoteAntRuntimeProcess(launch, process, label, attributes);
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntRuntimeProcess.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntRuntimeProcess.java
new file mode 100644
index 000000000..4a0bba2b1
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/launchConfigurations/RemoteAntRuntimeProcess.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.internal.launching.launchConfigurations;
+
+import java.util.Map;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.model.IStreamsProxy;
+import org.eclipse.debug.core.model.RuntimeProcess;
+
+public class RemoteAntRuntimeProcess extends RuntimeProcess {
+
+ /**
+ * Constructs a RuntimeProcess on the given system process
+ * with the given name, adding this process to the given
+ * launch.
+ * Sets the streams proxy to an AntStreamsProxy if output is captured.
+ */
+ public RemoteAntRuntimeProcess(ILaunch launch, Process process, String name, Map attributes) {
+ super(launch, process, name, attributes);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.RuntimeProcess#createStreamsProxy()
+ */
+ protected IStreamsProxy createStreamsProxy() {
+ return new AntStreamsProxy();
+ }
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/launching/IAntLaunchConstants.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/launching/IAntLaunchConstants.java
new file mode 100644
index 000000000..ec8ae33bd
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/launching/IAntLaunchConstants.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.launching;
+
+import org.eclipse.core.externaltools.internal.IExternalToolConstants;
+
+/**
+ * Constant definitions for Ant launch configurations.
+ *
+ * @since 1.0
+ * @noimplement This interface is not intended to be implemented by clients.
+ */
+public interface IAntLaunchConstants {
+
+ /**
+ * Ant launch configuration type identifier.
+ */
+ public static final String ID_ANT_LAUNCH_CONFIGURATION_TYPE = "org.eclipse.ant.AntLaunchConfigurationType"; //$NON-NLS-1$
+
+ public static final String MAIN_TYPE_NAME= "org.eclipse.ant.internal.launching.remote.InternalAntRunner"; //$NON-NLS-1$
+
+ /**
+ * Ant builder launch configuration type identifier. Ant project builders
+ * are of this type.
+ */
+ public static final String ID_ANT_BUILDER_LAUNCH_CONFIGURATION_TYPE = "org.eclipse.ant.AntBuilderLaunchConfigurationType"; //$NON-NLS-1$
+
+ /**
+ * String attribute indicating the Ant targets to execute. Default value is
+ * <code>null</code> which indicates that the default target is to be
+ * executed. Format is a comma separated listing of targets.
+ */
+ public static final String ATTR_ANT_TARGETS = IExternalToolConstants.UI_PLUGIN_ID + ".ATTR_ANT_TARGETS"; //$NON-NLS-1$
+
+ /**
+ * String attribute indicating the Ant targets to execute after a clean
+ * (full build) for an Ant builder. Default value is <code>null</code> which
+ * indicates that the default target is to be executed. Format is a comma
+ * separated listing of targets.
+ */
+ public static final String ATTR_ANT_AFTER_CLEAN_TARGETS = "org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS"; //$NON-NLS-1$
+
+ /**
+ * String attribute indicating the Ant targets to execute during a manual
+ * build for an Ant builder. Default value is <code>null</code> which
+ * indicates that the default target is to be executed. Format is a comma
+ * separated listing of targets.
+ */
+ public static final String ATTR_ANT_MANUAL_TARGETS = "org.eclipse.ant.ui.ATTR_ANT_MANUAL_TARGETS"; //$NON-NLS-1$
+
+ /**
+ * String attribute indicating the Ant targets to execute during an auto
+ * build for an Ant builder. Default value is <code>null</code> which
+ * indicates that the default target is to be executed. Format is a comma
+ * separated listing of targets.
+ */
+ public static final String ATTR_ANT_AUTO_TARGETS = "org.eclipse.ant.ui.ATTR_ANT_AUTO_TARGETS"; //$NON-NLS-1$
+
+ /**
+ * String attribute indicating the Ant targets to execute during a clean for
+ * an Ant builder. Default value is <code>null</code> which indicates that
+ * the default target is to be executed. Format is a comma separated listing
+ * of targets.
+ */
+ public static final String ATTR_ANT_CLEAN_TARGETS = "org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS"; //$NON-NLS-1$
+
+ /**
+ * Boolean attribute indicating whether or not target specification for an
+ * Ant builder has been updated for 3.1
+ */
+ public static final String ATTR_TARGETS_UPDATED = "org.eclipse.ant.ui.ATTR_TARGETS_UPDATED"; //$NON-NLS-1$
+
+ /**
+ * Map attribute indicating the Ant properties to be defined during the
+ * build. Default value is <code>null</code> which indicates no additional
+ * properties will be defined.
+ */
+ public static final String ATTR_ANT_PROPERTIES = IExternalToolConstants.UI_PLUGIN_ID + ".ATTR_ANT_PROPERTIES"; //$NON-NLS-1$
+
+ /**
+ * String attribute indicating the Ant targets to execute. Default value is
+ * <code>null</code> which indicates that no additional property files will
+ * be defined. Format is a comma separated listing of property files.
+ */
+ public static final String ATTR_ANT_PROPERTY_FILES = IExternalToolConstants.UI_PLUGIN_ID + ".ATTR_ANT_PROPERTY_FILES"; //$NON-NLS-1$
+
+ /**
+ * Boolean attribute indicating whether or not internal targets (targets
+ * with no description) should be hidden from the user in the launch
+ * configuration dialog. Default value is <code>false</code> which indicates
+ * that all targets will be displayed.
+ */
+ public static final String ATTR_HIDE_INTERNAL_TARGETS = IExternalToolConstants.UI_PLUGIN_ID + ".ATTR_HIDE_INTERNAL_TARGETS"; //$NON-NLS-1$
+
+ /**
+ * Integer attribute indicating which column targets should be sorted on. A
+ * value of 0 indicates target name, 1 indicates target description, and -1
+ * indicates no sort. Default value is -1.
+ */
+ public static final String ATTR_SORT_TARGETS = IExternalToolConstants.UI_PLUGIN_ID + "ATTR_SORT_TARGETS"; //$NON-NLS-1$
+
+ /**
+ * Boolean attribute indicating if the default VM install should be used for
+ * the separate JRE build Default value is <code>false</code> for backwards
+ * compatibility
+ */
+ public static final String ATTR_DEFAULT_VM_INSTALL = "org.eclipse.ant.ui.DEFAULT_VM_INSTALL"; //$NON-NLS-1$
+
+ /**
+ * Identifier for Ant processes (value
+ * <code>org.eclipse.ant.ui.antProcess</code>). This identifier is set as
+ * the value for the <code>IProcess.ATTR_PROCESS_TYPE</code> attribute in
+ * processes created by the Ant launch delegate.
+ */
+ public static final String ID_ANT_PROCESS_TYPE = "org.eclipse.ant.ui.antProcess"; //$NON-NLS-1$
+
+}
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/launching/package.html b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/launching/package.html
new file mode 100644
index 000000000..55fd48456
--- /dev/null
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/launching/package.html
@@ -0,0 +1,13 @@
+<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+ <title>Package-level Javadoc</title>
+</head>
+<body>
+Provides support for Ant launching.
+<h2>
+Package Specification</h2>
+This package defines constants for Ant launch configuration attributes.
+</body>
+</html>
diff --git a/ant/org.eclipse.ant.tests.core/.classpath b/ant/org.eclipse.ant.tests.core/.classpath
new file mode 100644
index 000000000..2ed1e9cd2
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/.classpath
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="test plugin"/>
+ <classpathentry kind="src" path="tests"/>
+ <classpathentry kind="src" output="test_support_bin" path="test support"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/ant/org.eclipse.ant.tests.core/.externalToolBuilders/Ant Test Support Lib Builder.launch b/ant/org.eclipse.ant.tests.core/.externalToolBuilders/Ant Test Support Lib Builder.launch
new file mode 100644
index 000000000..601d4a016
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/.externalToolBuilders/Ant Test Support Lib Builder.launch
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,clean"/>
+<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.core/test support/org&quot; type=&quot;2&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml&quot; type=&quot;1&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
+<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.core&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml}"/>
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_RUN_IN_BACKGROUND" value="false"/>
+</launchConfiguration>
diff --git a/ant/org.eclipse.ant.tests.core/.project b/ant/org.eclipse.ant.tests.core/.project
new file mode 100644
index 000000000..8d670cd7c
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/.project
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ant.tests.core</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value>&lt;project&gt;/.externalToolBuilders/Ant Test Support Lib Builder.launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.core.prefs b/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 000000000..f01a37434
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+#Thu May 27 14:48:43 PDT 2004
+eclipse.preferences.version=1
+selfhosting.binExcludes=/org.eclipse.ant.tests.core/test_support_bin
diff --git a/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.prefs b/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.prefs
new file mode 100644
index 000000000..b30771597
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,29 @@
+#Mon Dec 14 11:40:48 CST 2009
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.missing.output=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.illegal-att-value=0
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=1
+compilers.p.unknown-attribute=0
+compilers.p.unknown-class=1
+compilers.p.unknown-element=0
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.p.unused-element-or-attribute=1
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+compilers.use-project=true
+eclipse.preferences.version=1
diff --git a/ant/org.eclipse.ant.tests.core/about.html b/ant/org.eclipse.ant.tests.core/about.html
new file mode 100644
index 000000000..460233046
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 2, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/build.properties b/ant/org.eclipse.ant.tests.core/build.properties
new file mode 100644
index 000000000..3d4cff0fe
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/build.properties
@@ -0,0 +1,28 @@
+###############################################################################
+# Copyright (c) 2000, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+bin.includes = plugin.xml,\
+ plugin.properties,\
+ test.xml,\
+ about.html,\
+ testbuildfiles/,\
+ testresources/,\
+ testlib/,\
+ lib/,\
+ lib/*.jar,\
+ *.jar,\
+ META-INF/
+
+source.anttestscore.jar = test plugin/,\
+ tests/
+source.lib/antTestsSupport.jar = test support/
+jars.compile.order=anttestscore.jar,lib/antTestsSupport.jar
+output.lib/antTestsSupport.jar = test_support_bin/
+output.anttestscore.jar = bin/
diff --git a/ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml b/ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml
new file mode 100644
index 000000000..8b57ae736
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/buildfiles/buildAntTestsSupportJAR.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?> <!--
+ Copyright (c) 2005, 2006 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+
+<project name="build tests support jar" default="build" basedir="..">
+
+ <target name="build" description="Removes all build artifacts, recreates the support jar, and refreshes this plugin's resources" depends="clean, lib/antTestsSupport.jar"/>
+
+ <target name="init" depends="properties">
+ <property name="temp.folder" value="${basedir}/temp.folder"/>
+ <property name="plugin.destination" value="${basedir}"/>
+ <property name="build.result.folder" value="${basedir}"/>
+ </target>
+
+ <target name="properties" if="eclipse.running">
+ <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+ </target>
+
+ <target name="lib/antTestsSupport.jar" depends="init" description= "Builds the support JAR">
+ <property name="destdir" value="${temp.folder}/lib/antTestsSupport.jar.bin"/>
+ <delete dir="${destdir}"/>
+ <mkdir dir="${destdir}"/>
+ <!-- compile the source code -->
+ <javac target="1.1" destdir="${destdir}" failonerror="false" verbose="false" debug="on" includeAntRuntime="yes">
+ <classpath>
+ <dirset dir="${basedir}">
+ <include name="../org.eclipse.core.runtime/bin"/>
+ <include name="bin"/>
+ <include name="../org.eclipse.ant.core/bin"/>
+ </dirset>
+ <fileset dir="${eclipse.home}/plugins">
+ <include name="org.eclipse.core.runtime*.jar"/>
+ <include name="org.eclipse.equinox.common*.jar"/>
+ <include name="org.eclipse.ant.core*.jar"/>
+ </fileset>
+ </classpath>
+ <src path="test support/"/>
+ </javac>
+ <mkdir dir="${build.result.folder}/lib"/>
+ <jar destfile="${build.result.folder}/lib/antTestsSupport.jar" basedir="${destdir}"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="clean" depends="init">
+ <delete file="${build.result.folder}/lib/antTestsSupport.jar"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/plugin.properties b/ant/org.eclipse.ant.tests.core/plugin.properties
new file mode 100644
index 000000000..f1e9e46e3
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/plugin.properties
@@ -0,0 +1,13 @@
+###############################################################################
+# Copyright (c) 2000, 2005 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+pluginName=Ant Core Test Plugin
+providerName=Eclipse.org
diff --git a/ant/org.eclipse.ant.tests.core/plugin.xml b/ant/org.eclipse.ant.tests.core/plugin.xml
new file mode 100644
index 000000000..bdadd4a07
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/plugin.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?> <!--
+ Copyright (c) 2005, 2008 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ant.core.extraClasspathEntries">
+ <extraClasspathEntry
+ library="lib/antTestsSupport.jar">
+ </extraClasspathEntry>
+ </extension>
+
+ <extension point="org.eclipse.ant.core.antTasks">
+ <antTask
+ name="coolTask"
+ class="org.eclipse.ant.tests.core.support.tasks.AntTestTask"
+ library="lib/antTestsSupport.jar"
+ headless="false">
+ </antTask>
+ <antTask
+ name="coolTask"
+ uri="testing"
+ class="org.eclipse.ant.tests.core.support.tasks.AntTestTask"
+ library="lib/antTestsSupport.jar"
+ headless="false">
+ </antTask>
+ </extension>
+
+ <extension point="org.eclipse.ant.core.antTypes">
+ <antType
+ name="coolType"
+ class="org.eclipse.ant.tests.core.support.types.AntTestPath"
+ library="lib/antTestsSupport.jar"
+ headless="false">
+ </antType>
+ <antType
+ name="coolType"
+ uri="testing"
+ class="org.eclipse.ant.tests.core.support.types.AntTestPath"
+ library="lib/antTestsSupport.jar"
+ headless="false">
+ </antType>
+ </extension>
+
+ <extension
+ point="org.eclipse.ant.core.antProperties">
+ <antProperty
+ name="property.testing"
+ value="true">
+ </antProperty>
+ <antProperty
+ name="property.testing2"
+ value="hey"
+ class= "org.eclipse.does.not.exist">
+ </antProperty>
+ <antProperty
+ name="property.testing3"
+ class= "org.eclipse.ant.tests.core.testplugin.AntTestPropertyValueProvider">
+ </antProperty>
+ <antProperty
+ name="property.headless"
+ value="headless"
+ headless= "false">
+ </antProperty>
+ </extension>
+
+</plugin>
diff --git a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntFileRunner.java b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntFileRunner.java
new file mode 100644
index 000000000..539e8026e
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntFileRunner.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.testplugin;
+
+
+import org.eclipse.ant.core.AntRunner;
+import org.eclipse.ant.tests.core.AbstractAntTest;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+
+/**
+ * Responsible for running test ant build files.
+ */
+public class AntFileRunner {
+
+ private static final String BASE_DIR_PREFIX = "-Dbasedir="; //$NON-NLS-1$
+
+ public void run(IFile buildFile, String[] targets, String[] args, String baseDir, boolean captureOutput) throws CoreException {
+
+ AntRunner runner = new AntRunner();
+
+ String[] runnerArgs = args;
+
+ if (baseDir.length() > 0) {
+ // Ant requires the working directory to be specified
+ // as one of the arguments, so it needs to be appended.
+ int length = 1;
+ if (args != null) {
+ length = args.length + 1;
+ }
+
+ runnerArgs = new String[length];
+ if (args != null) {
+ System.arraycopy(args, 0, runnerArgs, 0, args.length);
+ }
+ runnerArgs[length - 1] = BASE_DIR_PREFIX + baseDir;
+ }
+ runner.setArguments(runnerArgs);
+
+ if (buildFile != null) {
+ runner.setBuildFileLocation(buildFile.getLocation().toFile().toString());
+ }
+ if (targets != null && targets.length > 0) {
+ runner.setExecutionTargets(targets);
+ }
+ if (captureOutput) {
+ runner.addBuildLogger(AbstractAntTest.ANT_TEST_BUILD_LOGGER);
+ }
+
+ runner.run(null);
+ }
+
+ public void run(String[] args, String baseDir) throws Exception {
+
+ AntRunner runner = new AntRunner();
+
+ String[] runnerArgs = args;
+
+ if (baseDir.length() > 0) {
+ // Ant requires the working directory to be specified
+ // as one of the arguments, so it needs to be appended.
+ runnerArgs = new String[args.length + 1];
+ System.arraycopy(args, 0, runnerArgs, 0, args.length);
+ runnerArgs[args.length] = BASE_DIR_PREFIX + baseDir;
+ }
+ runner.setArguments(runnerArgs);
+
+ runner.run(args);
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java
new file mode 100644
index 000000000..1f449e531
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestChecker.java
@@ -0,0 +1,229 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.testplugin;
+
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+
+public class AntTestChecker {
+
+ private static AntTestChecker deflt= null;
+
+ private int taskStartedCount;
+
+ private int taskFinishedCount;
+
+ private int targetsStartedCount;
+
+ private int targetsFinishedCount;
+
+ private int buildsStartedCount;
+
+ private int buildsFinishedCount;
+
+ private List messages= new ArrayList();
+
+ private List targets= new ArrayList();
+
+ private List tasks= new ArrayList();
+
+ private List projects= new ArrayList();
+
+ private Hashtable userProperties;
+
+ private List nameOfListeners= new ArrayList();
+
+ private AntTestChecker() {
+ }
+
+ /**
+ * Returns the singleton AntTestChecker
+ */
+ public static AntTestChecker getDefault() {
+ if (deflt == null) {
+ deflt= new AntTestChecker();
+ }
+ return deflt;
+ }
+
+ /**
+ * Resets the singleton AntTestChecker
+ */
+ public static void reset() {
+ if (deflt != null) {
+ deflt.resetState();
+ }
+ }
+ /**
+ * @see org.apache.tools.ant.BuildListener#buildFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void buildFinished() {
+ buildsFinishedCount++;
+ }
+
+
+ public void buildStarted(String projectName) {
+ buildsStartedCount++;
+ projects.add(projectName);
+ }
+
+
+ public void messageLogged(String message) {
+ messages.add(message);
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#targetFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void targetFinished() {
+ targetsFinishedCount++;
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#targetStarted(org.apache.tools.ant.BuildEvent)
+ */
+ public void targetStarted(String targetName) {
+ targetsStartedCount++;
+ targets.add(targetName);
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#taskFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void taskFinished() {
+ taskFinishedCount++;
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#taskStarted(org.apache.tools.ant.BuildEvent)
+ */
+ public void taskStarted(String taskName) {
+ taskStartedCount++;
+ tasks.add(taskName);
+ }
+
+ /**
+ * Returns the buildsFinishedCount.
+ * @return int
+ */
+ public int getBuildsFinishedCount() {
+ return buildsFinishedCount;
+ }
+
+ /**
+ * Returns the buildsStartedCount.
+ * @return int
+ */
+ public int getBuildsStartedCount() {
+ return buildsStartedCount;
+ }
+
+ /**
+ * Returns the messagesLoggedCount.
+ * @return int
+ */
+ public int getMessagesLoggedCount() {
+ return messages.size();
+ }
+
+ /**
+ * Returns the targetsFinishedCount.
+ * @return int
+ */
+ public int getTargetsFinishedCount() {
+ return targetsFinishedCount;
+ }
+
+ /**
+ * Returns the targetsStartedCount.
+ * @return int
+ */
+ public int getTargetsStartedCount() {
+ return targetsStartedCount;
+ }
+
+ /**
+ * Returns the taskFinishedCount.
+ * @return int
+ */
+ public int getTaskFinishedCount() {
+ return taskFinishedCount;
+ }
+
+ /**
+ * Returns the taskStartedCount.
+ * @return int
+ */
+ public int getTaskStartedCount() {
+ return taskStartedCount;
+ }
+
+ protected void resetState() {
+ taskStartedCount= 0;
+ taskFinishedCount= 0;
+ targetsStartedCount= 0;
+ targetsFinishedCount= 0;
+ buildsStartedCount= 0;
+ buildsFinishedCount= 0;
+ messages= new ArrayList();
+ tasks= new ArrayList();
+ targets= new ArrayList();
+ projects= new ArrayList();
+ userProperties= null;
+ nameOfListeners= new ArrayList();
+ }
+
+ /**
+ * Return the message n from the last:
+ * e.g. getLoggedMessage(0) returns the most recent message
+ *
+ * @param n message index
+ * @return the nth last message
+ */
+ public String getLoggedMessage(int n) {
+ n = messages.size() - (n + 1);
+ if ((n < 0) || (n >= messages.size())) {
+ return null;
+ }
+ return (String) messages.get(n);
+ }
+
+ public String getLastMessageLogged() {
+ return getLoggedMessage(0);
+ }
+
+ public void setUserProperties(Hashtable userProperties) {
+ this.userProperties= userProperties;
+ }
+
+ public String getUserProperty(String name) {
+ return (String)userProperties.get(name);
+ }
+
+ public List getMessages() {
+ return messages;
+ }
+
+ public List getListeners() {
+ return nameOfListeners;
+ }
+
+ public String getLastListener() {
+ return (String)nameOfListeners.get(nameOfListeners.size() - 1);
+ }
+
+
+ public void addNameOfListener(String nameOfListener) {
+ this.nameOfListeners.add(nameOfListener);
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPlugin.java b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPlugin.java
new file mode 100644
index 000000000..3e5810328
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPlugin.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.testplugin;
+
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceDescription;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.Bundle;
+
+
+public class AntTestPlugin extends AbstractUIPlugin {
+
+ private static AntTestPlugin deflt;
+
+ public AntTestPlugin() {
+ super();
+ deflt= this;
+ }
+
+ public static AntTestPlugin getDefault() {
+ return deflt;
+ }
+
+ public static IWorkspace getWorkspace() {
+ return ResourcesPlugin.getWorkspace();
+ }
+
+ public static void enableAutobuild(boolean enable) throws CoreException {
+ // disable auto build
+ IWorkspace workspace= AntTestPlugin.getWorkspace();
+ IWorkspaceDescription desc= workspace.getDescription();
+ desc.setAutoBuilding(enable);
+ workspace.setDescription(desc);
+ }
+
+ public File getFileInPlugin(IPath path) {
+ try {
+ Bundle bundle = getDefault().getBundle();
+ URL installURL= new URL(bundle.getEntry("/"), path.toString());
+ URL localURL= FileLocator.toFileURL(installURL);
+ return new File(localURL.getFile());
+ } catch (IOException e) {
+ return null;
+ }
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPropertyValueProvider.java b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPropertyValueProvider.java
new file mode 100644
index 000000000..2786e964e
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/AntTestPropertyValueProvider.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.testplugin;
+
+import org.eclipse.ant.core.IAntPropertyValueProvider;
+
+public class AntTestPropertyValueProvider implements IAntPropertyValueProvider {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ant.core.IAntPropertyValueProvider#getAntPropertyValue(java.lang.String)
+ */
+ public String getAntPropertyValue(String antPropertyName) {
+ return "AntTestPropertyValueProvider";
+ }
+
+}
diff --git a/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/ProjectHelper.java b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/ProjectHelper.java
new file mode 100644
index 000000000..4389ed7d7
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test plugin/org/eclipse/ant/tests/core/testplugin/ProjectHelper.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.testplugin;
+
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.util.*;
+
+import org.eclipse.core.resources.*;
+import org.eclipse.core.runtime.*;
+import org.eclipse.ui.dialogs.IOverwriteQuery;
+import org.eclipse.ui.wizards.datatransfer.*;
+
+/**
+ * Helper methods to set up an IProject.
+ */
+public class ProjectHelper {
+
+ public static final IPath TEST_BUILDFILES_DIR= new Path("testbuildfiles");
+ public static final IPath TEST_RESOURCES_DIR= new Path("testresources");
+ public static final IPath TEST_LIB_DIR= new Path("testlib");
+
+ /**
+ * Creates a IProject.
+ */
+ public static IProject createProject(String projectName) throws CoreException {
+ IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
+ IProject project= root.getProject(projectName);
+ if (!project.exists()) {
+ project.create(null);
+ } else {
+ project.refreshLocal(IResource.DEPTH_INFINITE, null);
+ }
+
+ if (!project.isOpen()) {
+ project.open(null);
+ }
+
+ return project;
+ }
+
+ /**
+ * Removes an IProject.
+ */
+ public static void delete(IProject project) throws CoreException {
+ project.delete(true, true, null);
+ }
+
+
+ /**
+ * Adds a folder to an IProject.
+ */
+ public static IFolder addFolder(IProject project, String containerName) throws CoreException {
+
+ IFolder folder= project.getFolder(containerName);
+ if (!folder.exists()) {
+ folder.create(false, true, null);
+ }
+
+ return folder;
+
+ }
+
+ public static void importFilesFromDirectory(File rootDir, IPath destPath, IProgressMonitor monitor) throws InvocationTargetException, IOException {
+ IImportStructureProvider structureProvider = FileSystemStructureProvider.INSTANCE;
+ List files = new ArrayList(100);
+ addFiles(rootDir, files);
+ try {
+ ImportOperation op= new ImportOperation(destPath, rootDir, structureProvider, new ImportOverwriteQuery(), files);
+ op.setCreateContainerStructure(false);
+ op.run(monitor);
+ } catch (InterruptedException e) {
+ // should not happen
+ }
+ }
+
+ private static void addFiles(File dir, List collection) throws IOException {
+ File[] files = dir.listFiles();
+ List subDirs = new ArrayList(2);
+ for (int i = 0; i < files.length; i++) {
+ if (files[i].isFile()) {
+ collection.add(files[i]);
+ } else if (files[i].isDirectory()) {
+ subDirs.add(files[i]);
+ }
+ }
+ Iterator iter = subDirs.iterator();
+ while (iter.hasNext()) {
+ File subDir = (File)iter.next();
+ addFiles(subDir, collection);
+ }
+ }
+
+ private static class ImportOverwriteQuery implements IOverwriteQuery {
+ public String queryOverwrite(String file) {
+ return ALL;
+ }
+ }
+
+ public static final String PROJECT_NAME = "AntTests";
+ public static final String BUILDFILES_FOLDER = "buildfiles";
+ public static final String RESOURCES_FOLDER = "resources";
+ public static final String LIB_FOLDER = "lib";
+}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/inputHandlers/AntTestInputHandler.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/inputHandlers/AntTestInputHandler.java
new file mode 100644
index 000000000..e6be8dcee
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/inputHandlers/AntTestInputHandler.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.support.inputHandlers;
+
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.input.DefaultInputHandler;
+import org.apache.tools.ant.input.InputRequest;
+
+/**
+ * A test input handler when using Ant within Eclipse.
+ * This is the class that will respond to <input> requests from
+ * within an Ant build file.
+ * If the build is occurring in Ant 1.6.0 and the -noinput option has been specified
+ * this input handler will fail.
+ */
+public class AntTestInputHandler extends DefaultInputHandler {
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.input.InputHandler#handleInput(org.apache.tools.ant.input.InputRequest)
+ */
+ public void handleInput(InputRequest request) throws BuildException {
+ if (System.getProperty("eclipse.ant.noInput") != null) { //$NON-NLS-1$
+ throw new BuildException("Unable to respond to input request likely as a result of specifying the -noinput command");
+ }
+ request.setInput("testing handling input requests");
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask.java
new file mode 100644
index 000000000..57372f0ab
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.support.tasks;
+
+
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.taskdefs.Echo;
+
+
+public class AntTestTask extends Task {
+
+ public AntTestTask() {
+ super();
+ }
+
+ /**
+ * @see org.apache.tools.ant.Task#execute()
+ */
+ public void execute() throws BuildException {
+ Echo echo= new Echo();
+ echo.setProject(getProject());
+ echo.setMessage("Testing Ant in Eclipse with a custom task");
+ echo.execute();
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.java
new file mode 100644
index 000000000..2f44be2e9
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.support.tasks;
+
+
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.taskdefs.Echo;
+
+
+public class AntTestTask2 extends Task {
+
+ public AntTestTask2() {
+ super();
+ }
+
+ /**
+ * @see org.apache.tools.ant.Task#execute()
+ */
+ public void execute() throws BuildException {
+ Echo echo= new Echo();
+ echo.setProject(getProject());
+ echo.setMessage("Testing Ant in Eclipse with a custom task");
+ echo.execute();
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildListener.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildListener.java
new file mode 100644
index 000000000..774488043
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildListener.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.support.testloggers;
+
+
+import org.apache.tools.ant.BuildEvent;
+import org.apache.tools.ant.BuildListener;
+import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
+
+
+public class TestBuildListener implements BuildListener {
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#buildFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void buildFinished(BuildEvent event) {
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#buildStarted(org.apache.tools.ant.BuildEvent)
+ */
+ public void buildStarted(BuildEvent event) {
+ AntTestChecker.getDefault().addNameOfListener(this.getClass().getName());
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#messageLogged(org.apache.tools.ant.BuildEvent)
+ */
+ public void messageLogged(BuildEvent event) {
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#targetFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void targetFinished(BuildEvent event) {
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#targetStarted(org.apache.tools.ant.BuildEvent)
+ */
+ public void targetStarted(BuildEvent event) {
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#taskFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void taskFinished(BuildEvent event) {
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#taskStarted(org.apache.tools.ant.BuildEvent)
+ */
+ public void taskStarted(BuildEvent event) {
+ }
+
+}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java
new file mode 100644
index 000000000..3b9d8aac1
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/testloggers/TestBuildLogger.java
@@ -0,0 +1,178 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.support.testloggers;
+
+
+import java.io.PrintStream;
+
+import org.apache.tools.ant.BuildEvent;
+import org.apache.tools.ant.BuildLogger;
+import org.apache.tools.ant.Project;
+import org.eclipse.ant.core.AntSecurityException;
+import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
+import org.eclipse.core.runtime.OperationCanceledException;
+
+public class TestBuildLogger implements BuildLogger {
+
+ private int fMessageOutputLevel= Project.MSG_INFO;
+ private PrintStream fErr= null;
+ private PrintStream fOut= null;
+ private boolean fSetProperties= true;
+
+ /**
+ * An exception that has already been logged.
+ */
+ private Throwable fHandledException= null;
+
+
+ public TestBuildLogger() {
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildLogger#setMessageOutputLevel(int)
+ */
+ public void setMessageOutputLevel(int level) {
+ fMessageOutputLevel= level;
+ }
+
+ protected int getMessageOutputLevel() {
+ return fMessageOutputLevel;
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildLogger#setEmacsMode(boolean)
+ */
+ public void setEmacsMode(boolean emacsMode) {
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#buildStarted(org.apache.tools.ant.BuildEvent)
+ */
+ public void buildStarted(BuildEvent event) {
+ AntTestChecker.getDefault().buildStarted(event.getProject().getName());
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#buildFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void buildFinished(BuildEvent event) {
+ handleException(event);
+ fHandledException= null;
+ AntTestChecker.getDefault().buildFinished();
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#targetStarted(org.apache.tools.ant.BuildEvent)
+ */
+ public void targetStarted(BuildEvent event) {
+ AntTestChecker.getDefault().targetStarted(event.getTarget().getName());
+ if (fSetProperties) {
+ fSetProperties= false;
+ AntTestChecker.getDefault().setUserProperties(event.getProject().getProperties());
+ }
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#targetFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void targetFinished(BuildEvent event) {
+ handleException(event);
+ AntTestChecker.getDefault().targetFinished();
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#taskStarted(org.apache.tools.ant.BuildEvent)
+ */
+ public void taskStarted(BuildEvent event) {
+ AntTestChecker.getDefault().taskStarted(event.getTask().getTaskName());
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildListener#taskFinished(org.apache.tools.ant.BuildEvent)
+ */
+ public void taskFinished(BuildEvent event) {
+ handleException(event);
+ AntTestChecker.getDefault().targetFinished();
+ }
+
+ /**
+ * @see BuildListener#messageLogged(BuildEvent)
+ */
+ public void messageLogged(BuildEvent event) {
+ if (event.getPriority() > getMessageOutputLevel()) {
+ return;
+ }
+ logMessage(event.getMessage(), event.getPriority());
+ AntTestChecker.getDefault().messageLogged(event.getMessage());
+ }
+
+ protected PrintStream getErrorPrintStream() {
+ return fErr;
+ }
+
+ protected PrintStream getOutputPrintStream() {
+ return fOut;
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildLogger#setErrorPrintStream(java.io.PrintStream)
+ */
+ public void setErrorPrintStream(PrintStream err) {
+ //this build logger logs to "null" unless
+ //the user has explicitly set a logfile to use
+ if (err == System.err) {
+ fErr= null;
+ } else {
+ fErr= err;
+ }
+ }
+
+ /**
+ * @see org.apache.tools.ant.BuildLogger#setOutputPrintStream(java.io.PrintStream)
+ */
+ public void setOutputPrintStream(PrintStream output) {
+ //this build logger logs to "null" unless
+ //the user has explicitly set a logfile to use
+ if (output == System.out) {
+ fOut= null;
+ } else {
+ fOut= output;
+ }
+ }
+
+ protected void logMessage(String message, int priority) {
+ if (priority > getMessageOutputLevel()) {
+ return;
+ }
+
+ if (priority == Project.MSG_ERR) {
+ if (getErrorPrintStream() != null && getErrorPrintStream() != System.err) {
+ //user has designated to log to a logfile
+ getErrorPrintStream().println(message);
+ }
+ } else {
+ if (getOutputPrintStream() != null && getOutputPrintStream() != System.out) {
+ //user has designated to log to a logfile
+ getOutputPrintStream().println(message);
+ }
+ }
+ }
+
+ protected void handleException(BuildEvent event) {
+ Throwable exception = event.getException();
+ if (exception == null || exception == fHandledException
+ || exception instanceof OperationCanceledException
+ || exception instanceof AntSecurityException) {
+ return;
+ }
+ fHandledException= exception;
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/types/AntTestPath.java b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/types/AntTestPath.java
new file mode 100644
index 000000000..e5e9bf25a
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test support/org/eclipse/ant/tests/core/support/types/AntTestPath.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.support.types;
+
+
+
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.types.Path;
+
+public class AntTestPath extends Path {
+
+ String message;
+
+ public AntTestPath(Project project) {
+ super(project);
+ }
+
+ public void setMessage(String message) {
+ this.message= message;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+}
diff --git a/ant/org.eclipse.ant.tests.core/test.xml b/ant/org.eclipse.ant.tests.core/test.xml
new file mode 100644
index 000000000..4f6daa5ae
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/test.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+
+<project name="testsuite" default="run" basedir=".">
+ <!-- sets the properties eclipse-home, and library-file -->
+ <!-- The property ${eclipse-home} should be passed into this script -->
+ <!-- Set a meaningful default value for when it is not. -->
+ <property name="eclipse-home" value="${basedir}\..\.."/>
+<property name="plugin-name" value="org.eclipse.ant.tests.core"/>
+ <property name="library-file"
+ value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
+
+ <!-- This target holds all initialization code that needs to be done for -->
+ <!-- all tests that are to be run. Initialization for individual tests -->
+ <!-- should be done within the body of the suite target. -->
+ <target name="init">
+ <tstamp/>
+ <delete>
+ <fileset dir="${eclipse-home}" includes="org*.xml"/>
+ </delete>
+ </target>
+
+ <!-- This target defines the tests that need to be run. -->
+ <target name="suite">
+ <property name="jdt-folder"
+ value="${eclipse-home}/jdt_folder"/>
+ <delete dir="${jdt-folder}" quiet="true"/>
+ <ant target="core-test" antfile="${library-file}" dir="${eclipse-home}">
+ <property name="data-dir" value="${jdt-folder}"/>
+ <property name="plugin-name" value="${plugin-name}"/>
+ <property name="classname"
+ value="org.eclipse.ant.tests.core.AutomatedSuite"/>
+ </ant>
+ </target>
+
+ <!-- This target holds code to cleanup the testing environment after -->
+ <!-- after all of the tests have been run. You can use this target to -->
+ <!-- delete temporary files that have been created. -->
+ <target name="cleanup">
+ </target>
+
+ <!-- This target runs the test suite. Any actions that need to happen -->
+ <!-- after all the tests have been run should go here. -->
+ <target name="run" depends="init,suite,cleanup">
+ <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
+ <property name="includes" value="org*.xml"/>
+ <property name="output-file" value="${plugin-name}.xml"/>
+ </ant>
+ </target>
+
+ <!-- This target runs the performance test suites. -->
+ <target name="performance">
+ </target>
+
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug32551.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug32551.xml
new file mode 100644
index 000000000..e5439971c
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug32551.xml
@@ -0,0 +1,15 @@
+<project name="bug" default="all">
+ <path id="myclasspath">
+ <fileset dir="..\lib">
+ <include name="antTestsSupport.jar" />
+ </fileset>
+ </path>
+
+ <taskdef name="hello" classname="org.eclipse.ant.tests.core.support.tasks.AntTestTask">
+ <classpath refid="myclasspath" />
+ </taskdef>
+
+ <target name="all">
+ <hello />
+ </target>
+ </project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug34663.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug34663.xml
new file mode 100644
index 000000000..2479f907f
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug34663.xml
@@ -0,0 +1,8 @@
+<project name="34663.xml" default="echoP">
+
+<taskdef file="${ROOTDIR}/taskdefs.properties" />
+
+ <target name="echoP">
+ <myEchoProperties/>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug42926.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug42926.xml
new file mode 100644
index 000000000..3bb86a294
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug42926.xml
@@ -0,0 +1,12 @@
+<project default="all">
+ <path id="someclasspath">
+ <fileset dir="${ant.home}/lib" includes="sometask.jar"/>
+ </path>
+
+ <taskdef name="sometask" classname="com.foo.SomeTask"
+classpathref="someclasspath"/>
+
+ <target name="all">
+ <echo>Hello ${ant.home}</echo>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug73602.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug73602.xml
new file mode 100644
index 000000000..505a2bd67
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/Bug73602.xml
@@ -0,0 +1,13 @@
+<project name="main" default="all">
+ <taskdef resource="taskdefs.properties"/>
+ <hello/>
+ <target name="all">
+ <echo>Hello</echo>
+ </target>
+ <target name="all3">
+ <echo>Hello</echo>
+ </target>
+ <target name="all4">
+ <echo>Hello</echo>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/ClasspathOrdering.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/ClasspathOrdering.xml
new file mode 100644
index 000000000..c99b65e1e
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/ClasspathOrdering.xml
@@ -0,0 +1,6 @@
+<project name="ClasspathOrdering" default="ordered" basedir="..">
+
+ <target name="ordered">
+ <java classname= "ClasspathOrdering"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomTask.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomTask.xml
new file mode 100644
index 000000000..53525c8b0
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomTask.xml
@@ -0,0 +1,13 @@
+<project name="Custom Task" default="Custom Task" basedir=".">
+ <target name="init">
+ <tstamp/>
+ </target>
+
+ <target name="Custom Task" description= "Test adding a custom task" depends="init">
+ <AntTestTask/>
+ </target>
+
+ <target name="Custom Task from Entry" description= "Test adding a custom task">
+ <AntTestTask2/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomType.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomType.xml
new file mode 100644
index 000000000..1ae1ef5c3
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/CustomType.xml
@@ -0,0 +1,16 @@
+<project name="Custom Type" default="Custom Type" basedir=".">
+
+ <anttestpath id="compile.classpath">
+ <fileset dir="lib">
+ <include name="**/*.jar"/>
+ </fileset>
+ </anttestpath>
+
+ <target name="init">
+ <tstamp/>
+ </target>
+
+ <target name="Custom Type" description= "Test adding a custom type" depends="init">
+ <echo message="Test adding a custom type"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointTask.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointTask.xml
new file mode 100644
index 000000000..b8c6bb43d
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointTask.xml
@@ -0,0 +1,16 @@
+<!--
+ Copyright (c) 2005, 2006 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+<project name="Extension Point Task" default="Extension Point Task" basedir=".">
+ <target name="Extension Point Task" description= "Ensure that an extension point defined task is present">
+ <coolTask/>
+ <my:coolTask xmlns:my="testing"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointType.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointType.xml
new file mode 100644
index 000000000..abaaaec76
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/ExtensionPointType.xml
@@ -0,0 +1,12 @@
+<project name="Extension Point Type" default="Extension Point Type" basedir=".">
+
+ <coolType id="compile.classpath">
+ <fileset dir="lib">
+ <include name="**/*.jar"/>
+ </fileset>
+ </coolType>
+
+ <target name="Extension Point Type" description= "Ensure that an extension point defined type is present">
+ <echo message="Ensure that an extension point defined type is present"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/NoDefault.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/NoDefault.xml
new file mode 100644
index 000000000..77c914a44
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/NoDefault.xml
@@ -0,0 +1,5 @@
+<project name= "Testing">
+ <target name= "test">
+ <echo message="testing"/>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/TestForEcho.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/TestForEcho.xml
new file mode 100644
index 000000000..2213e5e5b
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/TestForEcho.xml
@@ -0,0 +1,11 @@
+<project name="Echo Test" default="Test for Echo" basedir=".">
+ <target name="init">
+ <tstamp/>
+ </target>
+
+ <target name="Test for Echo" description= "Calls other echos" depends="init">
+ <ant antfile="buildfiles/echoing.xml" dir="../../AntTests" target="echo1"/>
+ <ant antfile="buildfiles/echoing.xml" dir="../../AntTests" target="echo2"/>
+ <ant antfile="buildfiles/echoing.xml" dir="../../AntTests" target="echo3"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/build.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/build.xml
new file mode 100644
index 000000000..7638a536c
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/build.xml
@@ -0,0 +1,14 @@
+<project name="Eching" default="echo1" basedir="..">
+
+ <target name="echo1">
+ <echo message="echo1"/>
+ </target>
+
+ <target name="echo2">
+ <echo message="echo2"/>
+ </target>
+
+ <target name="echo3" description= "An echo3!">
+ <echo message="echo3"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/echoing.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/echoing.xml
new file mode 100644
index 000000000..5cdd64da7
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/echoing.xml
@@ -0,0 +1,14 @@
+<project name="Echoing" default="echo1" basedir="..">
+
+ <target name="echo1">
+ <echo message="echo1"/>
+ </target>
+
+ <target name="echo2">
+ <echo message="echo2"/>
+ </target>
+
+ <target name="echo3" description= "An echo3!">
+ <echo message="echo3"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/failingTarget.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/failingTarget.xml
new file mode 100644
index 000000000..04418e08a
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/failingTarget.xml
@@ -0,0 +1,9 @@
+<project default="all">
+ <target name="all" depends="fails, echos"/>
+ <target name="fails">
+ <jar jarfile="jar16.jar" basedir="doesNotExist"/>
+ </target>
+ <target name="echos">
+ <echo>Still echo on failure</echo>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/input.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/input.xml
new file mode 100644
index 000000000..8d70ab5f4
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/input.xml
@@ -0,0 +1,7 @@
+<project name="input testing" default= "input test">
+ <target name="input test">
+ <input message="Enter for echo" addproperty= "inputTest">
+ </input>
+ <echo message="${inputTest}"/>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testbuildfiles/javac.xml b/ant/org.eclipse.ant.tests.core/testbuildfiles/javac.xml
new file mode 100644
index 000000000..42f022581
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testbuildfiles/javac.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.eclipse.ant.core" default="build" basedir="..">
+
+
+ <target name="init" depends="properties">
+ <property name="plugin" value="AntTests"/>
+ <property name="temp.folder" value="${basedir}/temp.folder"/>
+ <property name="plugin.destination" value="${basedir}"/>
+ <property name="build.result.folder" value="${basedir}"/>
+ </target>
+
+ <target name="properties" if="use.eclipse.JDTCompiler">
+ <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+ </target>
+
+ <target name="build" depends="init">
+ <property name="destdir" value="${temp.folder}/javac.bin"/>
+ <delete dir="${temp.folder}/javac.bin"/>
+ <mkdir dir="${temp.folder}/javac.bin"/>
+ <!-- compile the source code -->
+ <javac destdir="${temp.folder}/javac.bin" failonerror="false" verbose="false" debug="on" includeAntRuntime="yes">
+ <src path="resources"/>
+ </javac>
+ </target>
+
+ <target name="clean" depends="init">
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="refresh" depends="init" if="eclipse.running">
+ <eclipse.refreshLocal resource="${plugin}" depth="infinite"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering1.jar b/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering1.jar
new file mode 100644
index 000000000..b10cb7f6f
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering1.jar
Binary files differ
diff --git a/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering2.jar b/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering2.jar
new file mode 100644
index 000000000..6816741ca
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testlib/classpathOrdering2.jar
Binary files differ
diff --git a/ant/org.eclipse.ant.tests.core/testlib/taskFolder/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.class b/ant/org.eclipse.ant.tests.core/testlib/taskFolder/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.class
new file mode 100644
index 000000000..6a37eb55f
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testlib/taskFolder/org/eclipse/ant/tests/core/support/tasks/AntTestTask2.class
Binary files differ
diff --git a/ant/org.eclipse.ant.tests.core/testresources/AntTestTask.java b/ant/org.eclipse.ant.tests.core/testresources/AntTestTask.java
new file mode 100644
index 000000000..4f3f09c18
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testresources/AntTestTask.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.taskdefs.Echo;
+
+
+public class AntTestTask extends Task {
+
+ public AntTestTask() {
+ super();
+ }
+
+ /**
+ * @see org.apache.tools.ant.Task#execute()
+ */
+ public void execute() throws BuildException {
+ Echo echo= new Echo();
+ echo.setProject(getProject());
+ echo.setMessage("Testing Ant in Eclipse with a custom task");
+ echo.execute();
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.core/testresources/taskdefs.properties b/ant/org.eclipse.ant.tests.core/testresources/taskdefs.properties
new file mode 100644
index 000000000..47fdd3a20
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testresources/taskdefs.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2004, 2005 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+myEchoProperties=org.apache.tools.ant.taskdefs.optional.EchoProperties
+hello=org.eclipse.ant.tests.core.support.tasks.AntTestTask \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/testresources/test.properties b/ant/org.eclipse.ant.tests.core/testresources/test.properties
new file mode 100644
index 000000000..8a043f84d
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/testresources/test.properties
@@ -0,0 +1,12 @@
+###############################################################################
+# Copyright (c) 2000, 2005 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+AntTests=testing from properties file
+eclipse.is.cool=Yep
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AbstractAntTest.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AbstractAntTest.java
new file mode 100644
index 000000000..be5f9c375
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/AbstractAntTest.java
@@ -0,0 +1,263 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core;
+
+
+import java.io.File;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.ant.core.AntCorePlugin;
+import org.eclipse.ant.core.AntCorePreferences;
+import org.eclipse.ant.core.AntRunner;
+import org.eclipse.ant.core.IAntClasspathEntry;
+import org.eclipse.ant.core.Property;
+import org.eclipse.ant.core.TargetInfo;
+import org.eclipse.ant.core.Task;
+import org.eclipse.ant.core.Type;
+import org.eclipse.ant.tests.core.testplugin.AntFileRunner;
+import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
+import org.eclipse.ant.tests.core.testplugin.AntTestPlugin;
+import org.eclipse.ant.tests.core.testplugin.ProjectHelper;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+
+/**
+ * Tests for Ant core
+ */
+public abstract class AbstractAntTest extends TestCase {
+
+ protected static final String BUILD_SUCCESSFUL= "BUILD SUCCESSFUL";
+ public static final String ANT_TEST_BUILD_LOGGER = "org.eclipse.ant.tests.core.support.testloggers.TestBuildLogger"; //$NON-NLS-1$
+ public static final String ANT_TEST_BUILD_LISTENER= "org.eclipse.ant.tests.core.support.testloggers.TestBuildListener";
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ assertProject();
+ }
+
+ /**
+ * Asserts that the test project has been created and all testing resources have been
+ * loaded each time the {@link #setUp()} method is called
+ * @throws Exception
+ * @since 3.5
+ */
+ protected void assertProject() throws Exception {
+ // delete any pre-existing project
+ IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject(ProjectHelper.PROJECT_NAME);
+ if (!pro.exists()) {
+ // create project and import build files and support files
+ IProject project = ProjectHelper.createProject(ProjectHelper.PROJECT_NAME);
+ IFolder folder = ProjectHelper.addFolder(project, ProjectHelper.BUILDFILES_FOLDER);
+ File root = AntTestPlugin.getDefault().getFileInPlugin(ProjectHelper.TEST_BUILDFILES_DIR);
+ ProjectHelper.importFilesFromDirectory(root, folder.getFullPath(), null);
+
+ folder = ProjectHelper.addFolder(project, ProjectHelper.RESOURCES_FOLDER);
+ root = AntTestPlugin.getDefault().getFileInPlugin(ProjectHelper.TEST_RESOURCES_DIR);
+ ProjectHelper.importFilesFromDirectory(root, folder.getFullPath(), null);
+
+ folder = ProjectHelper.addFolder(project, ProjectHelper.LIB_FOLDER);
+ root = AntTestPlugin.getDefault().getFileInPlugin(ProjectHelper.TEST_LIB_DIR);
+ ProjectHelper.importFilesFromDirectory(root, folder.getFullPath(), null);
+ }
+ }
+
+ /**
+ * Returns the 'AntTests' project.
+ *
+ * @return the test project
+ */
+ protected IProject getProject() {
+ return ResourcesPlugin.getWorkspace().getRoot().getProject(ProjectHelper.PROJECT_NAME);
+ }
+
+ public AbstractAntTest(String name) {
+ super(name);
+ }
+
+ protected IFile getBuildFile(String buildFileName) {
+ IFile file = getProject().getFolder(ProjectHelper.BUILDFILES_FOLDER).getFile(buildFileName);
+ assertTrue("Could not find build file named: " + buildFileName, file.exists());
+ return file;
+ }
+
+ protected IFolder getWorkingDirectory(String workingDirectoryName) {
+ IFolder folder = getProject().getFolder(workingDirectoryName);
+ assertTrue("Could not find the working directory named: " + workingDirectoryName, folder.exists());
+ return folder;
+ }
+
+ protected IFile checkFileExists(String fileName) throws CoreException {
+ getProject().refreshLocal(IResource.DEPTH_INFINITE, null);
+ IFile file = getProject().getFolder(ProjectHelper.BUILDFILES_FOLDER).getFile(fileName);
+ assertTrue("Could not find file named: " + fileName, file.exists());
+ return file;
+ }
+
+ public void run(String buildFileName) throws CoreException {
+ run(buildFileName, null, false);
+ }
+
+ public void run(String buildFileName, String[] args) throws CoreException {
+ run(buildFileName, args, false);
+ }
+
+ public void run(String buildFileName, String[] args, boolean retrieveTargets) throws CoreException {
+ run(buildFileName, args, retrieveTargets, "");
+ }
+
+ public void run(String buildFileName, String[] args, boolean retrieveTargets, String workingDir) throws CoreException {
+ AntTestChecker.reset();
+ IFile buildFile= null;
+ if (buildFileName != null) {
+ buildFile= getBuildFile(buildFileName);
+ }
+ AntFileRunner runner= new AntFileRunner();
+ String[] targets= null;
+ if (retrieveTargets) {
+ targets= getTargetNames(buildFileName);
+ }
+ if (workingDir.length() > 0) {
+ workingDir= getWorkingDirectory(workingDir).getLocation().toFile().getAbsolutePath();
+ }
+ runner.run(buildFile, targets, args, workingDir, true);
+ assertTrue("Build starts did not equal build finishes", AntTestChecker.getDefault().getBuildsStartedCount() == AntTestChecker.getDefault().getBuildsFinishedCount());
+ }
+
+ protected TargetInfo[] getTargets(String buildFileName) throws CoreException {
+ IFile buildFile= getBuildFile(buildFileName);
+
+ AntRunner runner = new AntRunner();
+ runner.setBuildFileLocation(buildFile.getLocation().toFile().getAbsolutePath());
+ return runner.getAvailableTargets();
+ }
+
+ protected String[] getTargetNames(String buildFileName) throws CoreException {
+ TargetInfo[] infos= getTargets(buildFileName);
+ String[] names= new String[infos.length];
+ for (int i = 0; i < infos.length; i++) {
+ TargetInfo info = infos[i];
+ names[i]= info.getName();
+ }
+ return names;
+ }
+
+ protected String[] getTargetDescriptions(String buildFileName) throws CoreException {
+ TargetInfo[] infos= getTargets(buildFileName);
+ String[] descriptions= new String[infos.length];
+ for (int i = 0; i < infos.length; i++) {
+ TargetInfo info = infos[i];
+ descriptions[i]= info.getDescription();
+ }
+ return descriptions;
+ }
+
+ /**
+ * Returns the name of the project containing the given target in the given build file or
+ * <code>null</code> if no project name can be found.
+ */
+ protected String getProjectName(String buildFileName, String targetName) throws CoreException {
+ TargetInfo info= getTarget(buildFileName, targetName);
+ if (info != null) {
+ return info.getProject().getName();
+ }
+ return null;
+ }
+
+ /**
+ * Returns the dependencies of the target with the given name in the given build file or <code>null</code>
+ * if no such target can be found.
+ */
+ protected String[] getDependencies(String buildFileName, String targetName) throws CoreException {
+ TargetInfo info= getTarget(buildFileName, targetName);
+ if (info != null) {
+ return info.getDependencies();
+ }
+ return null;
+ }
+
+ /**
+ * Returns the target with the given name in the given build file or <code>null</code>
+ * if no such target can be found.
+ */
+ protected TargetInfo getTarget(String buildFileName, String targetName) throws CoreException {
+ TargetInfo[] infos= getTargets(buildFileName);
+ for (int i= 0, numTargets= infos.length; i < numTargets; i++) {
+ if (infos[i].getName().equals(targetName)) {
+ return infos[i];
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return the log message n from the last:
+ * e.g. getLoggedMessage(0) returns the most recent message
+ *
+ * @param n message index
+ * @return the nth last message
+ */
+ protected String getLoggedMessage(int n) {
+ return AntTestChecker.getDefault().getLoggedMessage(n);
+ }
+
+ protected String getLastMessageLogged() {
+ return getLoggedMessage(0);
+ }
+
+ protected void assertSuccessful() {
+ List messages= AntTestChecker.getDefault().getMessages();
+ String success= (String)messages.get(messages.size() - 1);
+ assertEquals("Build was not flagged as successful: " + success, BUILD_SUCCESSFUL, success);
+ }
+
+ protected String getPropertyFileName() {
+ return getProject().getFolder(ProjectHelper.RESOURCES_FOLDER).getFile("test.properties").getLocation().toFile().getAbsolutePath();
+ }
+
+ protected void restorePreferenceDefaults() {
+ AntCorePreferences prefs= AntCorePlugin.getPlugin().getPreferences();
+ IAntClasspathEntry toolsEntry= prefs.getToolsJarEntry();
+ IAntClasspathEntry[] additionalEntries;
+ if (toolsEntry == null) {
+ additionalEntries= new IAntClasspathEntry[]{};
+ } else {
+ additionalEntries= new IAntClasspathEntry[] {toolsEntry};
+ }
+ prefs.setAdditionalClasspathEntries(additionalEntries);
+ prefs.setAntHomeClasspathEntries(prefs.getDefaultAntHomeEntries());
+ prefs.setCustomTasks(new Task[]{});
+ prefs.setCustomTypes(new Type[]{});
+ prefs.setCustomPropertyFiles(new String[]{});
+ prefs.setCustomProperties(new Property[]{});
+ prefs.setAntHome(prefs.getDefaultAntHome());
+ }
+
+ protected String getAntHome() {
+ AntCorePreferences prefs= AntCorePlugin.getPlugin().getPreferences();
+ IAntClasspathEntry[] entries= prefs.getAntHomeClasspathEntries();
+ IAntClasspathEntry antjar= entries[0];
+ IPath antHomePath= new Path(antjar.getEntryURL().getFile());
+ antHomePath= antHomePath.removeLastSegments(1);
+ return antHomePath.toFile().getAbsolutePath();
+ }
+}
+
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/ProjectTests.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/ProjectTests.java
new file mode 100644
index 000000000..c3694fafa
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/ProjectTests.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.tests;
+
+
+import org.eclipse.ant.core.AntCorePlugin;
+import org.eclipse.ant.tests.core.AbstractAntTest;
+import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+
+
+public class ProjectTests extends AbstractAntTest {
+
+ public ProjectTests(String name) {
+ super(name);
+ }
+
+ /**
+ * Tests that the three properties that should always be set are correct
+ */
+ public void testBasePropertiesSet() throws CoreException {
+ String buildFileName="TestForEcho.xml";
+ run(buildFileName);
+ IFile buildFile= getBuildFile(buildFileName);
+ String fullName= buildFile.getLocation().toFile().getAbsolutePath();
+ assertEquals("eclipse.running should have been set as true", "true", AntTestChecker.getDefault().getUserProperty("eclipse.running"));
+ assertEquals("ant.file should have been set as the build file name", fullName, AntTestChecker.getDefault().getUserProperty("ant.file"));
+ assertNotNull("ant.java.version should have been set", AntTestChecker.getDefault().getUserProperty("ant.java.version"));
+ assertNotNull("ant.version should have been set", AntTestChecker.getDefault().getUserProperty("ant.version"));
+ assertNotNull("eclipse.home should have been set", AntTestChecker.getDefault().getUserProperty("eclipse.home"));
+ }
+
+ public void testValue() throws CoreException {
+ String buildFileName="TestForEcho.xml";
+ run(buildFileName);
+ assertEquals("property.testing should have been set as true", "true", AntTestChecker.getDefault().getUserProperty("property.testing"));
+ }
+
+ public void testValueWithClass() throws CoreException {
+
+ String buildFileName="TestForEcho.xml";
+ run(buildFileName);
+ assertEquals("property.testing2 should have been set as hey", "hey", AntTestChecker.getDefault().getUserProperty("property.testing2"));
+ }
+
+ public void testClass() throws CoreException {
+ String buildFileName="TestForEcho.xml";
+ run(buildFileName);
+ assertEquals("property.testing3 should have been set as AntTestPropertyProvider", "AntTestPropertyValueProvider", AntTestChecker.getDefault().getUserProperty("property.testing3"));
+ }
+
+ public void testHeadless() throws CoreException {
+ try {
+ AntCorePlugin.getPlugin().setRunningHeadless(true);
+ String buildFileName="TestForEcho.xml";
+ run(buildFileName);
+ assertNull("property.headless should not have been set as AntTestPropertyProvider", AntTestChecker.getDefault().getUserProperty("property.headless"));
+ } finally {
+ AntCorePlugin.getPlugin().setRunningHeadless(false);
+ }
+ }
+
+ public void testNotHeadless() throws CoreException {
+ String buildFileName="TestForEcho.xml";
+ run(buildFileName);
+ assertEquals("property.headless should have been set as AntTestPropertyProvider", "headless", AntTestChecker.getDefault().getUserProperty("property.headless"));
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TaskTests.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TaskTests.java
new file mode 100644
index 000000000..24ae8123f
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TaskTests.java
@@ -0,0 +1,151 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.tests;
+
+import java.io.File;
+import java.net.URL;
+
+import org.eclipse.ant.core.AntCorePlugin;
+import org.eclipse.ant.core.AntCorePreferences;
+import org.eclipse.ant.core.IAntClasspathEntry;
+import org.eclipse.ant.core.Property;
+import org.eclipse.ant.core.Task;
+import org.eclipse.ant.internal.core.AntClasspathEntry;
+import org.eclipse.ant.tests.core.AbstractAntTest;
+import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
+import org.eclipse.ant.tests.core.testplugin.ProjectHelper;
+import org.eclipse.core.runtime.CoreException;
+
+public class TaskTests extends AbstractAntTest {
+
+
+ public TaskTests(String name) {
+ super(name);
+ }
+
+ /**
+ * Testing the old deprecated API
+ * @throws CoreException
+ */
+ public void testAddTaskSettingLibrary() throws CoreException {
+ AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
+ URL[] urls= prefs.getExtraClasspathURLs();
+ Task newTask= new Task();
+ newTask.setLibrary(urls[0]);
+ newTask.setTaskName("AntTestTask");
+ newTask.setClassName("org.eclipse.ant.tests.core.support.tasks.AntTestTask");
+ prefs.setCustomTasks(new Task[]{newTask});
+
+ prefs.updatePluginPreferences();
+
+ run("CustomTask.xml", new String[0], false);
+ String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
+ assertEquals("Message incorrect: " + msg, "Testing Ant in Eclipse with a custom task", msg);
+ assertSuccessful();
+ }
+
+ public void testAddTaskSettingLibraryEntry() throws CoreException {
+ AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
+ URL[] urls= prefs.getExtraClasspathURLs();
+ Task newTask= new Task();
+ newTask.setLibraryEntry(new AntClasspathEntry(urls[0]));
+ newTask.setTaskName("AntTestTask2");
+ newTask.setClassName("org.eclipse.ant.tests.core.support.tasks.AntTestTask");
+ prefs.setCustomTasks(new Task[]{newTask});
+
+ prefs.updatePluginPreferences();
+
+ run("CustomTask.xml", new String[] {"Custom Task from Entry"}, false);
+ String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
+ assertEquals("Message incorrect: " + msg, "Testing Ant in Eclipse with a custom task", msg);
+ assertSuccessful();
+ }
+
+ public void testRemoveTask() {
+ AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
+ prefs.setCustomTasks(new Task[]{});
+ try {
+ run("CustomTask.xml");
+ } catch (CoreException ce) {
+ assertTrue("Exception from undefined task is incorrect", ce.getMessage().trim().endsWith("Action: Check that any <presetdef>/<macrodef> declarations have taken place."));
+ return;
+ } finally {
+ restorePreferenceDefaults();
+ }
+ assertTrue("Build should have failed as task no longer defined", false);
+ }
+
+ public void testAddTaskFromFolder() throws CoreException {
+ try {
+ AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
+ Task newTask= new Task();
+ String path= getProject().getFolder(ProjectHelper.LIB_FOLDER).getFile("taskFolder").getLocation().toFile().getAbsolutePath();
+ IAntClasspathEntry entry= new AntClasspathEntry(path + File.separatorChar);
+ IAntClasspathEntry entries[] = prefs.getAdditionalClasspathEntries();
+ IAntClasspathEntry newEntries[] = new IAntClasspathEntry[entries.length + 1];
+ System.arraycopy(entries, 0, newEntries, 0, entries.length);
+ newEntries[entries.length] = entry;
+ prefs.setAdditionalClasspathEntries(newEntries);
+
+ newTask.setLibraryEntry(entry);
+ newTask.setTaskName("AntTestTask");
+ newTask.setClassName("org.eclipse.ant.tests.core.support.tasks.AntTestTask2");
+ prefs.setCustomTasks(new Task[]{newTask});
+
+ prefs.updatePluginPreferences();
+
+ run("CustomTask.xml", new String[0], false);
+ String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
+ assertEquals("Message incorrect: " + msg, "Testing Ant in Eclipse with a custom task", msg);
+ assertSuccessful();
+ } finally {
+ restorePreferenceDefaults();
+ }
+ }
+
+ public void testTasksDefinedInPropertyFile() throws CoreException {
+ try {
+ AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
+ Property newProp= new Property("ROOTDIR", "..//resources");
+ prefs.setCustomProperties(new Property[]{newProp});
+ run("Bug34663.xml");
+ } finally {
+ restorePreferenceDefaults();
+ }
+ }
+
+ public void testTaskDefinedInExtensionPoint() throws CoreException {
+ run("ExtensionPointTask.xml");
+ String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
+ assertEquals("Message incorrect: " + msg, "Testing Ant in Eclipse with a custom task", msg);
+ assertSuccessful();
+ }
+
+ public void testTaskDefinedInExtensionPointHeadless() {
+ AntCorePlugin.getPlugin().setRunningHeadless(true);
+ try {
+ run("ExtensionPointTask.xml");
+ } catch (CoreException ce) {
+ assertTrue("Exception from undefined task is incorrect", ce.getMessage().trim().endsWith("Action: Check that any <presetdef>/<macrodef> declarations have taken place."));
+ return;
+ } finally {
+ AntCorePlugin.getPlugin().setRunningHeadless(false);
+ }
+ assertTrue("Build should have failed as task was not defined to run in headless", false);
+ }
+
+ public void testTaskDefinedInExtensionPointWithURI() throws CoreException {
+ run("ExtensionPointTask.xml");
+ String msg= (String)AntTestChecker.getDefault().getMessages().get(2);
+ assertEquals("Message incorrect: " + msg, "Testing Ant in Eclipse with a custom task", msg);
+ assertSuccessful();
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TypeTests.java b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TypeTests.java
new file mode 100644
index 000000000..2e30fccc0
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.core/tests/org/eclipse/ant/tests/core/tests/TypeTests.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.core.tests;
+
+
+import java.net.URL;
+
+import org.eclipse.ant.core.AntCorePlugin;
+import org.eclipse.ant.core.AntCorePreferences;
+import org.eclipse.ant.core.Type;
+import org.eclipse.ant.internal.core.AntClasspathEntry;
+import org.eclipse.ant.tests.core.AbstractAntTest;
+import org.eclipse.ant.tests.core.testplugin.AntTestChecker;
+import org.eclipse.core.runtime.CoreException;
+
+public class TypeTests extends AbstractAntTest {
+
+ public TypeTests(String name) {
+ super(name);
+ }
+
+ public void testAddType() throws CoreException {
+ AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
+ URL[] urls= prefs.getExtraClasspathURLs();
+ Type newType= new Type();
+ newType.setLibraryEntry(new AntClasspathEntry(urls[0]));
+ newType.setTypeName("anttestpath");
+ newType.setClassName("org.eclipse.ant.tests.core.support.types.AntTestPath");
+ prefs.setCustomTypes(new Type[]{newType});
+
+ run("CustomType.xml");
+ String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
+ assertEquals("Message incorrect: " + msg, "Test adding a custom type", msg);
+ assertSuccessful();
+ }
+
+ public void testRemoveType() {
+ AntCorePreferences prefs =AntCorePlugin.getPlugin().getPreferences();
+ prefs.setCustomTypes(new Type[]{});
+ try {
+ run("CustomType.xml");
+ } catch (CoreException ce) {
+ assertTrue("Exception from undefined type is incorrect: "+ ce.getMessage(), ce.getMessage().trim().endsWith("Action: Check that any <presetdef>/<macrodef> declarations have taken place."));
+ return;
+ } finally {
+ restorePreferenceDefaults();
+ }
+ assertTrue("Build should have failed as type no longer defined", false);
+
+ }
+
+ public void testTypeDefinedInExtensionPoint() throws CoreException {
+ run("ExtensionPointType.xml");
+ String msg= (String)AntTestChecker.getDefault().getMessages().get(1);
+ assertEquals("Message incorrect: " + msg, "Ensure that an extension point defined type is present", msg);
+ assertSuccessful();
+ }
+
+ public void testTypeDefinedInExtensionPointHeadless() {
+ AntCorePlugin.getPlugin().setRunningHeadless(true);
+ try {
+ run("ExtensionPointType.xml");
+ } catch (CoreException ce) {
+ assertTrue("Exception from undefined type is incorrect: " + ce.getMessage(), ce.getMessage().trim().endsWith("Action: Check that any <presetdef>/<macrodef> declarations have taken place."));
+ return;
+ } finally {
+ AntCorePlugin.getPlugin().setRunningHeadless(false);
+ }
+ assertTrue("Build should have failed as type was not defined to run in headless", false);
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/.classpath b/ant/org.eclipse.ant.tests.ui/.classpath
new file mode 100644
index 000000000..3b2694c9a
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/.classpath
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="Ant Editor Tests"/>
+ <classpathentry kind="src" path="Ant Debug Tests"/>
+ <classpathentry kind="src" path="test plugin"/>
+ <classpathentry kind="src" path="Ant Tests"/>
+ <classpathentry kind="src" path="External Tools"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+ <classpathentry kind="src" output="test_support_bin" path="test support"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/ant/org.eclipse.ant.tests.ui/.externalToolBuilders/Build Test Support JAR.launch b/ant/org.eclipse.ant.tests.ui/.externalToolBuilders/Build Test Support JAR.launch
new file mode 100644
index 000000000..71fd1f3b7
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/.externalToolBuilders/Build Test Support JAR.launch
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
+<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.ui/test support&quot; type=&quot;2&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,clean"/>
+<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.tests.ui&quot; type=&quot;4&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml}"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+</launchConfiguration>
diff --git a/ant/org.eclipse.ant.tests.ui/.project b/ant/org.eclipse.ant.tests.ui/.project
new file mode 100644
index 000000000..3c759b06f
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/.project
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ant.tests.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value>&lt;project&gt;/.externalToolBuilders/Build Test Support JAR.launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.core.prefs b/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 000000000..0f654cf39
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+#Thu May 27 14:48:38 PDT 2004
+eclipse.preferences.version=1
+selfhosting.binExcludes=/org.eclipse.ant.tests.ui/test_support_bin
diff --git a/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.prefs b/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.prefs
new file mode 100644
index 000000000..facd8d234
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,29 @@
+#Mon Dec 14 11:41:00 CST 2009
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.missing.output=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.illegal-att-value=0
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=1
+compilers.p.unknown-attribute=0
+compilers.p.unknown-class=1
+compilers.p.unknown-element=0
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.p.unused-element-or-attribute=1
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+compilers.use-project=true
+eclipse.preferences.version=1
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/BreakpointTests.java b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/BreakpointTests.java
new file mode 100644
index 000000000..28e521452
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/BreakpointTests.java
@@ -0,0 +1,217 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.debug;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.ant.internal.launching.debug.model.AntDebugTarget;
+import org.eclipse.ant.internal.launching.debug.model.AntThread;
+import org.eclipse.ant.launching.IAntLaunchConstants;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.model.IBreakpoint;
+import org.eclipse.debug.core.model.ILineBreakpoint;
+
+/**
+ * Tests Ant breakpoints.
+ */
+public class BreakpointTests extends AbstractAntDebugTest {
+
+ public BreakpointTests(String name) {
+ super(name);
+ }
+
+ public void testDeferredBreakpoints() throws Exception {
+ deferredBreakpoints(false);
+ }
+
+ public void testDeferredBreakpointsSepVM() throws Exception {
+ deferredBreakpoints(true);
+ }
+
+ private void deferredBreakpoints(boolean sepVM) throws Exception, CoreException, DebugException {
+ String fileName = "breakpoints";
+ IFile file= getIFile(fileName + ".xml");
+ List bps = new ArrayList();
+ bps.add(createLineBreakpoint(5, file));
+ bps.add(createLineBreakpoint(14, file));
+ AntThread thread= null;
+ try {
+ thread= launchToBreakpoint(fileName, true, sepVM);
+ assertNotNull("Breakpoint not hit within timeout period", thread);
+ while (!bps.isEmpty()) {
+ IBreakpoint hit = getBreakpoint(thread);
+ assertNotNull("suspended, but not by breakpoint", hit);
+ assertTrue("hit un-registered breakpoint", bps.contains(hit));
+ assertTrue("suspended, but not by line breakpoint", hit instanceof ILineBreakpoint);
+ ILineBreakpoint breakpoint= (ILineBreakpoint) hit;
+ int lineNumber = breakpoint.getLineNumber();
+ int stackLine = thread.getTopStackFrame().getLineNumber();
+ assertEquals("line numbers of breakpoint and stack frame do not match", lineNumber, stackLine);
+ bps.remove(breakpoint);
+ breakpoint.delete();
+ if (!bps.isEmpty()) {
+ if (sepVM) {
+ waitForTarget();
+ }
+ thread = resume(thread);
+ }
+ }
+ } finally {
+ terminateAndRemove(thread);
+ removeAllBreakpoints();
+ }
+ }
+
+ public void testDisabledBreakpoint() throws Exception {
+ disabledBreakpoint(false);
+ }
+
+ public void testDisabledBreakpointSepVM() throws Exception {
+ disabledBreakpoint(true);
+ }
+
+ private void disabledBreakpoint(boolean separateVM) throws Exception, CoreException {
+ String fileName = "breakpoints";
+ ILineBreakpoint bp = createLineBreakpoint(5, fileName + ".xml");
+ bp.setEnabled(false);
+ AntDebugTarget debugTarget = null;
+ try {
+ debugTarget= launchAndTerminate(fileName, separateVM);
+ } finally {
+ terminateAndRemove(debugTarget);
+ removeAllBreakpoints();
+ }
+ }
+
+ public void testEnableDisableBreakpoint() throws Exception {
+ enableDisableBreapoint(false);
+ }
+
+ public void testEnableDisableBreakpointSepVM() throws Exception {
+ enableDisableBreapoint(true);
+ }
+
+ private void enableDisableBreapoint(boolean sepVM) throws Exception, CoreException {
+
+ String fileName = "breakpoints";
+ ILineBreakpoint bp = createLineBreakpoint(5, fileName + ".xml");
+ bp.setEnabled(true);
+ AntThread thread = null;
+ try {
+ if (sepVM) {
+ fileName+= "SepVM";
+ }
+ ILaunchConfiguration config= getLaunchConfiguration(fileName);
+ ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
+ copy.setAttribute(IAntLaunchConstants.ATTR_ANT_TARGETS, "entry1,entry2");
+ thread= launchToLineBreakpoint(copy, bp);
+ bp.setEnabled(false);
+ if (sepVM) {
+ waitForTarget();
+ }
+ resumeAndExit(thread);
+ } finally {
+ terminateAndRemove(thread);
+ removeAllBreakpoints();
+ }
+ }
+
+ private synchronized void waitForTarget() {
+ try {
+ //wait for the target to get updated for the new breakpoint state
+ wait(1000);
+ } catch (InterruptedException ie) {
+ }
+ }
+
+ public void testSkipLineBreakpoint() throws Exception {
+ skipLineBreakpoint(false);
+ }
+
+ public void testSkipLineBreakpointSepVM() throws Exception {
+ skipLineBreakpoint(true);
+ }
+
+ private void skipLineBreakpoint(boolean sepVM) throws Exception {
+ String fileName = "breakpoints";
+ IFile file= getIFile(fileName + ".xml");
+ ILineBreakpoint bp = createLineBreakpoint(5, file);
+ createLineBreakpoint(15, file);
+ AntThread thread = null;
+ try {
+ if (sepVM) {
+ fileName+= "SepVM";
+ }
+ thread= launchToLineBreakpoint(fileName, bp);
+ getBreakpointManager().setEnabled(false);
+ resumeAndExit(thread);
+ } finally {
+ terminateAndRemove(thread);
+ removeAllBreakpoints();
+ getBreakpointManager().setEnabled(true);
+ }
+ }
+
+ public void testBreakpoint() throws Exception {
+ breakpoints(false, "default", 5, 15);
+ }
+
+ public void testBreakpointSepVM() throws Exception {
+ breakpoints(true, "default", 5, 15);
+ }
+
+ public void testTargetBreakpoint() throws Exception {
+ breakpoints(false, "entry2", 4, 24);
+ }
+
+ public void testTaskOutOfTargetBreakpoint() throws Exception {
+ breakpoints(false, "entry2", 36, 5);
+ }
+
+ public void testTaskOutOfTargetBreakpointSepVm() throws Exception {
+ breakpoints(true, "entry2", 36, 5);
+ }
+
+ public void testTargetBreakpointSepVM() throws Exception {
+ breakpoints(true, "entry2", 4, 24);
+ }
+
+ private void breakpoints(boolean sepVM, String defaultTargetName, int firstLineNumber, int secondLineNumber) throws CoreException {
+ String fileName = "breakpoints";
+ IFile file= getIFile(fileName + ".xml");
+ ILineBreakpoint bp = createLineBreakpoint(firstLineNumber, file);
+ AntThread thread = null;
+ try {
+ if (sepVM) {
+ fileName+= "SepVM";
+ }
+ ILaunchConfiguration config= getLaunchConfiguration(fileName);
+ ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
+ copy.setAttribute(IAntLaunchConstants.ATTR_ANT_TARGETS, defaultTargetName);
+ if (!sepVM) {
+ Thread.sleep(3000); //TODO bug 121207: wait for previous launch to fully terminate
+ }
+ thread= launchToLineBreakpoint(copy, bp);
+ bp= createLineBreakpoint(secondLineNumber, file);
+ resumeToLineBreakpoint(thread, bp);
+ } catch (InterruptedException e) {
+
+ } finally {
+ terminateAndRemove(thread);
+ removeAllBreakpoints();
+ }
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementEventWaiter.java b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementEventWaiter.java
new file mode 100644
index 000000000..768a87d0a
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementEventWaiter.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.debug;
+
+import org.eclipse.ant.tests.ui.testplugin.DebugEventWaiter;
+import org.eclipse.debug.core.DebugEvent;
+
+/**
+ * Waits for an event on a specific element
+ */
+
+public class DebugElementEventWaiter extends DebugEventWaiter {
+
+ protected Object fElement;
+
+ public DebugElementEventWaiter(int kind, Object element) {
+ super(kind);
+ fElement = element;
+ }
+
+ public boolean accept(DebugEvent event) {
+ return super.accept(event) && fElement == event.getSource();
+ }
+
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementKindEventDetailWaiter.java b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementKindEventDetailWaiter.java
new file mode 100644
index 000000000..93d96ae13
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/DebugElementKindEventDetailWaiter.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.debug;
+
+import org.eclipse.ant.tests.ui.testplugin.DebugElementKindEventWaiter;
+import org.eclipse.debug.core.DebugEvent;
+
+/**
+ * Wait for the specified event with the specified from the specified element.
+ */
+public class DebugElementKindEventDetailWaiter extends DebugElementKindEventWaiter {
+
+ protected int fDetail;
+
+ public DebugElementKindEventDetailWaiter(int eventKind, Class elementClass, int detail) {
+ super(eventKind, elementClass);
+ fDetail = detail;
+ }
+
+ public boolean accept(DebugEvent event) {
+ return super.accept(event) && fDetail == event.getDetail();
+ }
+
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/StackTests.java b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/StackTests.java
new file mode 100644
index 000000000..61f5a5dfc
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/StackTests.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.debug;
+
+import org.eclipse.ant.internal.launching.debug.model.AntThread;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.model.ILineBreakpoint;
+import org.eclipse.debug.core.model.IStackFrame;
+
+public class StackTests extends AbstractAntDebugTest {
+
+ public StackTests(String name) {
+ super(name);
+ }
+
+ public void testStackForAntCall() throws Exception {
+ antCallStack(false);
+ }
+
+ public void testStackForAntCallVM() throws Exception {
+ antCallStack(true);
+ }
+
+ private void antCallStack(boolean sepVM) throws CoreException {
+ String fileName = "85769";
+ IFile file= getIFile(fileName + ".xml");
+ ILineBreakpoint bp = createLineBreakpoint(18, file);
+ AntThread thread = null;
+ try {
+ if (sepVM) {
+ fileName+= "SepVM";
+ }
+ thread= launchToLineBreakpoint(fileName, bp);
+
+
+ IStackFrame[] frames= thread.getStackFrames();
+
+ assertTrue(frames.length == 3);
+ IStackFrame frame = frames[0];
+ frame.getName().equals("");
+ } finally {
+ terminateAndRemove(thread);
+ removeAllBreakpoints();
+ }
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/SteppingTests.java b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/SteppingTests.java
new file mode 100644
index 000000000..e76d1a59d
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Debug Tests/org/eclipse/ant/tests/ui/debug/SteppingTests.java
@@ -0,0 +1,234 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.debug;
+
+import org.eclipse.ant.internal.launching.debug.model.AntStackFrame;
+import org.eclipse.ant.internal.launching.debug.model.AntThread;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.DebugEvent;
+import org.eclipse.debug.core.DebugException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.model.ILineBreakpoint;
+import org.eclipse.debug.core.model.IStackFrame;
+
+public class SteppingTests extends AbstractAntDebugTest {
+
+ public SteppingTests(String name) {
+ super(name);
+ }
+
+ /**
+ * bug 84400
+ */
+ public void testStepBackFromAntCall() throws Exception {
+ antCallStack(false, 12, DebugEvent.STEP_OVER, "default: echo", 7);
+ }
+
+ /**
+ * bug 84400
+ */
+ public void testStepBackFromAntCallSepVM() throws Exception {
+ antCallStack(true, 12, DebugEvent.STEP_OVER, "default: echo", 7);
+ }
+
+ /**
+ * bug 88218, 85769
+ */
+ public void testStepIntoAntCall() throws Exception {
+ AntThread thread= null;
+ try {
+ thread= antCallStack(false, 5, DebugEvent.STEP_INTO, "pre-call: echo", 16, false);
+ IStackFrame[] frames= thread.getStackFrames();
+ assertFrame("call", 10, (AntStackFrame)frames[1]);
+ } finally {
+ terminateAndRemove(thread);
+ removeAllBreakpoints();
+ }
+ }
+
+ /**
+ * bug 88218, 85769
+ */
+ public void testStepIntoAntCallSepVM() throws Exception {
+ AntThread thread= null;
+ try {
+ thread= antCallStack(true, 5, DebugEvent.STEP_INTO, "pre-call: echo", 16, false);
+ IStackFrame[] frames= thread.getStackFrames();
+ assertFrame("call", 10, (AntStackFrame)frames[1]);
+ } finally {
+ terminateAndRemove(thread);
+ removeAllBreakpoints();
+ }
+ }
+
+ public void testStepOverAntCall() throws Exception {
+ antCallStack(false, 5, DebugEvent.STEP_OVER, "default: echo", 7);
+ }
+
+ public void testStepOverAntCallSepVM() throws Exception {
+ antCallStack(true, 5, DebugEvent.STEP_OVER, "default: echo", 7);
+ }
+
+ /**
+ * bug 96022
+ */
+ public void testStepOverAntCallPastOtherAntCalls() throws Exception {
+ debugStack(false, 7, DebugEvent.STEP_OVER, "default: echo", 9, "96022", true);
+ }
+ /**
+ * bug 96022
+ */
+ public void testStepOverAntCallPastOtherAntCallsSepVm() throws Exception {
+ debugStack(true, 7, DebugEvent.STEP_OVER, "default: echo", 9, "96022", true);
+ }
+
+ public void testStepOverAntCallHitBreakpoint() throws Exception {
+ String fileName = "debugAntCall";
+ createLineBreakpoint(12, fileName + ".xml");
+ antCallStack(false, 5, DebugEvent.BREAKPOINT, "call: sleep", 12);
+ }
+
+ public void testStepOverAntCallHitBreakpointSepVM() throws Exception {
+ String fileName = "debugAntCall";
+ createLineBreakpoint(12, fileName + ".xml");
+ antCallStack(true, 5, DebugEvent.BREAKPOINT, "call: sleep", 12);
+ }
+
+ private AntThread antCallStack(boolean sepVM, int lineNumber, int kind, String frameName, int frameLineNumber) throws CoreException {
+ return antCallStack(sepVM, lineNumber, kind, frameName, frameLineNumber, true);
+ }
+
+ private AntThread antCallStack(boolean sepVM, int lineNumber, int kind, String frameName, int frameLineNumber, boolean terminate) throws CoreException {
+ String fileName = "debugAntCall";
+ return debugStack(sepVM, lineNumber, kind, frameName, frameLineNumber, fileName, terminate);
+ }
+
+ private AntThread debugStack(boolean sepVM, int lineNumber, int kind, String frameName, int frameLineNumber, String fileName, boolean terminate) throws CoreException, DebugException {
+ ILineBreakpoint bp = createLineBreakpoint(lineNumber, fileName + ".xml");
+ AntThread thread= null;
+ try {
+ if (sepVM) {
+ fileName+="SepVM";
+ }
+ ILaunchConfiguration config= getLaunchConfiguration(fileName);
+ thread= launchToLineBreakpoint(config, bp);
+ debugFrame(kind, frameName, frameLineNumber, thread);
+ return thread;
+ } finally {
+ if (terminate) {
+ terminateAndRemove(thread);
+ removeAllBreakpoints();
+ }
+ }
+ }
+
+ private void debugFrame(int kind, String frameName, int frameLineNumber, AntThread thread) throws DebugException {
+ AntStackFrame frame = (AntStackFrame)thread.getTopStackFrame();
+ assertNotNull(frame);
+ switch (kind) {
+ case DebugEvent.BREAKPOINT:
+ stepOverToHitBreakpoint(frame);
+ break;
+ case DebugEvent.STEP_OVER:
+ stepOver(frame);
+ break;
+ case DebugEvent.STEP_INTO:
+ stepInto(frame);
+ break;
+ }
+ assertFrame(thread, frameName, frameLineNumber);
+ }
+
+ private AntStackFrame assertFrame(AntThread thread, String frameName, int lineNumber) throws DebugException {
+ AntStackFrame frame = (AntStackFrame)thread.getTopStackFrame();
+ return assertFrame(frameName, lineNumber, frame);
+ }
+
+ private AntStackFrame assertFrame(String frameName, int lineNumber, AntStackFrame frame) {
+ String actualFrameName= frame.getName();
+ int actualLineNumber= frame.getLineNumber();
+ assertTrue("Name of stack frame incorrect. Expected " + frameName + " was: " + actualFrameName, frameName.equals(actualFrameName));
+ assertTrue("Line number of stack frame incorrect. Expected " + lineNumber + " was: " + actualLineNumber, lineNumber == actualLineNumber);
+ return frame;
+ }
+
+ /**
+ * bug 85309
+ * @throws CoreException
+ */
+ public void testStepOutOfMacrodef() throws CoreException {
+ String fileName = "macrodef";
+ debugStack(false, 8 , DebugEvent.STEP_OVER, "type: eclipseMacro", 16, fileName, true);
+ }
+
+ /**
+ * bug 85309
+ * @throws CoreException
+ */
+ public void testStepOutOfMacrodefSepVM() throws CoreException {
+ String fileName = "macrodef";
+ debugStack(true, 8 , DebugEvent.STEP_OVER, "type: eclipseMacro", 16, fileName, true);
+ }
+
+ /**
+ * bug 94769
+ * @throws CoreException
+ */
+ public void testStepIntoMacrodef() throws CoreException {
+ testMacroDef(false);
+ }
+
+ /**
+ * bug 94769
+ * @throws CoreException
+ */
+ public void testStepIntoMacrodefSepVM() throws CoreException {
+ testMacroDef(true);
+ }
+
+ private void testMacroDef(boolean sepVM) throws CoreException, DebugException {
+ AntThread thread= null;
+ try {
+ String fileName = "macrodef";
+ thread= debugStack(sepVM, 16 , DebugEvent.STEP_INTO, "type: sequential", 0, fileName, false);
+ debugFrame(DebugEvent.STEP_INTO, "type: echo", 8, thread);
+ debugFrame(DebugEvent.STEP_OVER, "type: eclipseMacro", 17, thread);
+ } finally {
+ terminateAndRemove(thread);
+ removeAllBreakpoints();
+ }
+ }
+
+// public void testStepBackFromAnt() throws Exception {
+// antCallStack(false);
+// }
+//
+// public void testStepBackFromAntSepVM() throws Exception {
+// antCallStack(false);
+// }
+//
+//
+// public void testStepIntoAnt() throws Exception {
+// antCallStack(false);
+// }
+//
+// public void testStepIntoAntSepVM() throws Exception {
+// antCallStack(false);
+// }
+//
+// public void testStepOverAnt() throws Exception {
+// antCallStack(false);
+// }
+//
+// public void testStepOverAntSepVM() throws Exception {
+// antCallStack(false);
+// }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/dtd/dumper.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/dtd/dumper.java
new file mode 100644
index 000000000..b6d6d16f7
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/dtd/dumper.java
@@ -0,0 +1,147 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2005 Object Factory Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Object Factory Inc. - Initial implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui.dtd;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Map;
+
+import org.eclipse.ant.internal.ui.dtd.IDfm;
+import org.eclipse.ant.internal.ui.dtd.IElement;
+import org.eclipse.ant.internal.ui.dtd.IModel;
+import org.eclipse.ant.internal.ui.dtd.ISchema;
+import org.eclipse.ant.internal.ui.dtd.ParseError;
+import org.eclipse.ant.internal.ui.dtd.Parser;
+
+/**
+ * This class is intended to be used from the command line (hence the
+ * uncapitalized class name).
+ * @author Bob Foster
+ */
+public class dumper {
+
+ public static int main(String[] args) {
+
+ if (args.length <= 0) {
+ System.out.println("Usage: java DTDMerger URL");
+ return 0;
+ }
+ String document = args[0];
+
+ Parser parser = new Parser();
+
+ ISchema schema;
+ try {
+ schema = parser.parse(document);
+ } catch (ParseError e) {
+ System.out.println(e.getMessage());
+ e.printStackTrace();
+ return 1;
+ } catch (IOException e) {
+ e.printStackTrace();
+ return 1;
+ }
+ System.out.println("DTD successfully parsed");
+ dumpSchema(schema);
+ return 0;
+ }
+
+ /**
+ * Write schema contents to standard output.
+ */
+ private static void dumpSchema(ISchema schema) {
+ IElement[] elements = schema.getElements();
+ System.out.println(""+elements.length+" elements defined");
+ for (int i = 0; i < elements.length; i++) {
+ IElement element = elements[i];
+ IModel model = element.getContentModel();
+ System.out.println("ELEMENT "+element.getName()
+ +'"'+model.stringRep()+'"');
+ dumpDfm(element.getDfm());
+ }
+ }
+
+ /**
+ * Dump dfm as a series of states.
+ * <pre>
+ * S0 a=>S1 b=>S2
+ * S1 c=>S2
+ * S2* d=>S2
+ * </pre>
+ * Where * indicates accepting state.
+ * @param dfm to dump
+ */
+ private static void dumpDfm(IDfm dfm) {
+ HashMap map = new HashMap();
+ dumpDfm(dfm, map, 0);
+ LinkedList list = new LinkedList();
+ Iterator it = map.entrySet().iterator();
+ while (it.hasNext()) {
+ Map.Entry entry = (Map.Entry) it.next();
+ list.add(new State((IDfm)entry.getKey(), (Integer)entry.getValue()));
+ }
+ State[] states = (State[]) list.toArray(new State[list.size()]);
+ Arrays.sort(states);
+ for (int i = 0; i < states.length; i++) {
+ print(states[i], map);
+ }
+ }
+
+ private static void print(State state, HashMap map) {
+ System.out.print(" S"+state.n.intValue()
+ +(state.dfm.isAccepting() ? "* " : " "));
+ String[] accepts = state.dfm.getAccepts();
+ for (int i = 0; i < accepts.length; i++) {
+ String accept = accepts[i];
+ IDfm next = state.dfm.advance(accept);
+ int n = ((Integer)map.get(next)).intValue();
+ System.out.print(" "+accept+"=>S"+n);
+ }
+ System.out.println();
+ }
+
+ private static int dumpDfm(IDfm dfm, HashMap map, int num) {
+ if (!map.containsKey(dfm)) {
+ map.put(dfm, new Integer(num++));
+ String[] accepts = dfm.getAccepts();
+ for (int i = 0; i < accepts.length; i++) {
+ IDfm next = dfm.advance(accepts[i]);
+ num = dumpDfm(next, map, num);
+ }
+ }
+ return num;
+ }
+
+ private static class State implements Comparable {
+ public IDfm dfm;
+ public Integer n;
+ public State(IDfm dfm, Integer n) {
+ this.dfm = dfm;
+ this.n = n;
+ }
+ /**
+ * @see java.lang.Comparable#compareTo(java.lang.Object)
+ */
+ public int compareTo(Object o) {
+ State other = (State) o;
+ return n.intValue() < other.n.intValue()
+ ? -1
+ : (n.intValue() == other.n.intValue()
+ ? 0
+ : 1);
+ }
+
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/TaskDescriptionProviderTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/TaskDescriptionProviderTest.java
new file mode 100644
index 000000000..a0c094ef7
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/TaskDescriptionProviderTest.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2002, 2005 GEBIT Gesellschaft fuer EDV-Beratung
+ * und Informatik-Technologien mbH,
+ * Berlin, Duesseldorf, Frankfurt (Germany).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * GEBIT Gesellschaft fuer EDV-Beratung und Informatik-Technologien mbH - initial implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui.editor;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
+import org.eclipse.ant.internal.ui.editor.TaskDescriptionProvider;
+
+/**
+ * Tests the tasks description provider.
+ *
+ */
+public class TaskDescriptionProviderTest extends AbstractAntUITest {
+
+ public TaskDescriptionProviderTest(String name) {
+ super(name);
+ }
+
+ /**
+ * Tests getting the description of a task.
+ */
+ public void testGettingTaskDescription() {
+ TaskDescriptionProvider provider = TaskDescriptionProvider.getDefault();
+ String description = provider.getDescriptionForTask("apply");
+ assertNotNull(description);
+ assertTrue(description.length() > 0);
+ }
+
+ /**
+ * Tests getting the description of an attribute.
+ */
+ public void testGettingAttribute() {
+ TaskDescriptionProvider provider = TaskDescriptionProvider.getDefault();
+ String description = provider.getDescriptionForTaskAttribute("apply", "executable");
+ assertNotNull(description);
+ assertTrue(description.length() > 0);
+ }
+
+ /**
+ * Tests getting the required value of an attribute.
+ */
+ public void testGettingRequired() {
+ TaskDescriptionProvider provider = TaskDescriptionProvider.getDefault();
+ String required = provider.getRequiredAttributeForTaskAttribute("apply", "executable");
+ assertNotNull(required);
+ assertEquals("yes", required);
+ }
+
+ public static Test suite() {
+ return new TestSuite(TaskDescriptionProviderTest.class);
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/FormattingPreferencesTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/FormattingPreferencesTest.java
new file mode 100644
index 000000000..946a69bcb
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/FormattingPreferencesTest.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 John-Mason P. Shackelford and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * John-Mason P. Shackelford - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.editor.formatter;
+
+import org.eclipse.ant.internal.ui.editor.formatter.FormattingPreferences;
+import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
+
+public class FormattingPreferencesTest extends AbstractAntUITest {
+
+ public FormattingPreferencesTest(String name) {
+ super(name);
+ }
+
+ public final void testGetCanonicalIndent() {
+
+ FormattingPreferences prefs;
+
+ // test spaces
+ prefs = new FormattingPreferences(){
+ public int getTabWidth() {
+ return 3;
+ }
+ public boolean useSpacesInsteadOfTabs() {
+ return true;
+ }
+ };
+ assertEquals(" ",prefs.getCanonicalIndent());
+
+ // ensure the value is not hard coded
+ prefs = new FormattingPreferences(){
+ public int getTabWidth() {
+ return 7;
+ }
+ public boolean useSpacesInsteadOfTabs() {
+ return true;
+ }
+ };
+ assertEquals(" ",prefs.getCanonicalIndent());
+
+ // use tab character
+ prefs = new FormattingPreferences(){
+ public int getTabWidth() {
+ return 7;
+ }
+ public boolean useSpacesInsteadOfTabs() {
+ return false;
+ }
+ };
+ assertEquals("\t",prefs.getCanonicalIndent());
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlDocumentFormatterTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlDocumentFormatterTest.java
new file mode 100644
index 000000000..0a007aae8
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlDocumentFormatterTest.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 John-Mason P. Shackelford and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * John-Mason P. Shackelford - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.editor.formatter;
+
+import org.eclipse.ant.internal.ui.editor.formatter.FormattingPreferences;
+import org.eclipse.ant.internal.ui.editor.formatter.XmlDocumentFormatter;
+import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
+
+public class XmlDocumentFormatterTest extends AbstractAntUITest {
+
+ public XmlDocumentFormatterTest(String name) {
+ super(name);
+ }
+
+ /**
+ * General Test
+ */
+ public final void testGeneralFormat() throws Exception {
+ FormattingPreferences prefs = new FormattingPreferences(){
+ public int getTabWidth() {
+ return 3;
+ }
+ public boolean useSpacesInsteadOfTabs() {
+ return true;
+ }
+ };
+ simpleTest("formatTest_source01.xml","formatTest_target01.xml",prefs);
+ }
+
+ /**
+ * Insure that tab width is not hard coded
+ */
+ public final void testTabWidth() throws Exception {
+ FormattingPreferences prefs = new FormattingPreferences(){
+ public int getTabWidth() {
+ return 7;
+ }
+ public boolean useSpacesInsteadOfTabs() {
+ return true;
+ }
+ };
+ simpleTest("formatTest_source01.xml","formatTest_target02.xml",prefs);
+ }
+
+
+ /**
+ * Test with tab characters instead of spaces.
+ */
+ public final void testTabsInsteadOfSpaces() throws Exception {
+ FormattingPreferences prefs = new FormattingPreferences(){
+ public int getTabWidth() {
+ return 3;
+ }
+ public boolean useSpacesInsteadOfTabs() {
+ return false;
+ }
+ };
+ simpleTest("formatTest_source01.xml","formatTest_target03.xml",prefs);
+ }
+
+ /**
+ * @param sourceFileName - file to format
+ * @param targetFileName - the source file after a properly executed format
+ * @param prefs - given the included preference instructions
+ * @throws Exception
+ */
+ private void simpleTest(String sourceFileName, String targetFileName, FormattingPreferences prefs) throws Exception {
+
+ XmlDocumentFormatter xmlFormatter = new XmlDocumentFormatter();
+ xmlFormatter.setDefaultLineDelimiter(System.getProperty("line.separator"));
+ String result = xmlFormatter.format(getFileContentAsString(getBuildFile(sourceFileName)),prefs);
+ String expectedResult = getFileContentAsString(getBuildFile(targetFileName));
+
+ assertEquals(expectedResult, result);
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlFormatterTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlFormatterTest.java
new file mode 100644
index 000000000..acd8fcbba
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlFormatterTest.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 John-Mason P. Shackelford and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * John-Mason P. Shackelford - initial API and implementation
+ * IBM Corporation - bug 84342
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.editor.formatter;
+
+import junit.framework.TestCase;
+
+import org.eclipse.ant.internal.ui.AntUIPlugin;
+import org.eclipse.ant.internal.ui.editor.formatter.FormattingPreferences;
+import org.eclipse.ant.internal.ui.editor.formatter.XmlFormatter;
+import org.eclipse.ant.internal.ui.preferences.AntEditorPreferenceConstants;
+import org.eclipse.core.runtime.Preferences;
+
+public class XmlFormatterTest extends TestCase {
+
+ public final void testFormatUsingPreferenceStore() {
+ Preferences prefs = AntUIPlugin.getDefault().getPluginPreferences();
+ prefs.setValue(AntEditorPreferenceConstants.FORMATTER_WRAP_LONG, true);
+ prefs.setValue(AntEditorPreferenceConstants.FORMATTER_MAX_LINE_LENGTH, 40);
+ prefs.setValue(AntEditorPreferenceConstants.FORMATTER_ALIGN, false);
+ prefs.setValue(AntEditorPreferenceConstants.FORMATTER_TAB_CHAR, true);
+ prefs.setValue(AntEditorPreferenceConstants.FORMATTER_TAB_SIZE, 4);
+ String lineSep= System.getProperty("line.separator");
+ String xmlDoc = "<project default=\"go\"><target name=\"go\" description=\"Demonstrate the wrapping of long tags.\"><echo>hi</echo></target></project>";
+ String formattedDoc = XmlFormatter.format(xmlDoc);
+ String expected = "<project default=\"go\">" + lineSep + "\t<target name=\"go\"" + lineSep + "\t description=\"Demonstrate the wrapping of long tags.\">" + lineSep + "\t\t<echo>hi</echo>" + lineSep + "\t</target>" + lineSep + "</project>";
+ assertEquals(expected, formattedDoc);
+ }
+
+ public final void testFormatWithPreferenceParameter() {
+ FormattingPreferences prefs = new FormattingPreferences() {
+ public boolean wrapLongTags() { return true;}
+ public int getMaximumLineWidth() { return 40;}
+ public boolean alignElementCloseChar() { return false;}
+ public boolean useSpacesInsteadOfTabs() { return true;}
+ public int getTabWidth() { return 6;}
+ };
+ String lineSep= System.getProperty("line.separator");
+ String xmlDoc = "<project default=\"go\"><target name=\"go\" description=\"Demonstrate the wrapping of long tags.\"><echo>hi</echo></target></project>";
+ String formattedDoc = XmlFormatter.format(xmlDoc, prefs);
+ String expected = "<project default=\"go\">" + lineSep + " <target name=\"go\"" + lineSep + " description=\"Demonstrate the wrapping of long tags.\">" + lineSep + " <echo>hi</echo>" + lineSep + " </target>" + lineSep + "</project>";
+ assertEquals(expected, formattedDoc);
+ }
+
+ /**
+ * Bug 84342
+ */
+ public final void testFormatMaintainingLineSeparators() {
+ FormattingPreferences prefs = new FormattingPreferences() {
+ public boolean wrapLongTags() { return true;}
+ public int getMaximumLineWidth() { return 40;}
+ public boolean alignElementCloseChar() { return false;}
+ public boolean useSpacesInsteadOfTabs() { return true;}
+ public int getTabWidth() { return 6;}
+ };
+ String lineSep= System.getProperty("line.separator");
+ String xmlDoc = "<project default=\"go\"><target name=\"go\" description=\"Demonstrate the wrapping of long tags.\"><echo>hi</echo></target>" + lineSep + lineSep + "</project>";
+ String formattedDoc = XmlFormatter.format(xmlDoc, prefs);
+ String expected = "<project default=\"go\">" + lineSep + " <target name=\"go\"" + lineSep + " description=\"Demonstrate the wrapping of long tags.\">" + lineSep + " <echo>hi</echo>" + lineSep + " </target>" + lineSep + lineSep + "</project>";
+ assertEquals(expected, formattedDoc);
+ }
+
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java
new file mode 100644
index 000000000..abd3e2955
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/formatter/XmlTagFormatterTest.java
@@ -0,0 +1,378 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 John-Mason P. Shackelford and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * John-Mason P. Shackelford - initial API and implementation
+ * IBM Corporation - Bug 84342
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.editor.formatter;
+
+import java.util.List;
+
+import org.eclipse.ant.internal.ui.editor.formatter.XmlTagFormatter;
+import org.eclipse.ant.internal.ui.editor.formatter.FormattingPreferences;
+import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
+
+public class XmlTagFormatterTest extends AbstractAntUITest {
+
+ // TODO This test is too low level and too tightly coupled to internals.
+
+ /* ---------------- Test Fixture ---------------- */
+ // In case anyone wonders why many people recommend against testing
+ // privates, I produce this example...
+ private static class InnerClassFactory extends XmlTagFormatter {
+
+ public static class ParseException extends XmlTagFormatter.ParseException {
+
+ private static final long serialVersionUID = 1L;
+
+ public ParseException(String message) {
+ super(message);
+ }
+ }
+
+ public static class Tag extends XmlTagFormatter.Tag {
+ }
+
+ public static class TagFormatter extends XmlTagFormatter.TagFormatter {
+
+ public boolean lineRequiresWrap(String line, int lineWidth,
+ int tabWidth) {
+ return super.lineRequiresWrap(line, lineWidth, tabWidth);
+ }
+
+ public int tabExpandedLineWidth(String line, int tabWidth) {
+ return super.tabExpandedLineWidth(line, tabWidth);
+ }
+
+ public String wrapTag(Tag tag, FormattingPreferences prefs,
+ String indent, String lineDelimiter) {
+ return super.wrapTag(tag, prefs, indent, lineDelimiter);
+ }
+ }
+
+ public static class TagParser extends XmlTagFormatter.TagParser {
+
+ public String getElementName(String tagText)
+ throws XmlTagFormatter.ParseException {
+ return super.getElementName(tagText);
+ }
+
+ public List getAttibutes(String elementText)
+ throws XmlTagFormatter.ParseException {
+ return super.getAttibutes(elementText);
+ }
+ }
+
+ public static Tag createTag() {
+ return new Tag();
+ }
+
+ public static TagFormatter createTagFormatter() {
+ return new TagFormatter();
+ }
+
+ public static TagParser createTagParser() {
+ return new TagParser();
+ }
+
+ public static void validateAttributePair(Object attributePair, String attribute, String value) {
+ XmlTagFormatter.AttributePair pair = (XmlTagFormatter.AttributePair) attributePair;
+ assertEquals(attribute, pair.getAttribute());
+ assertEquals(value, pair.getValue());
+ }
+ }
+
+ public XmlTagFormatterTest(String name) {
+ super(name);
+ }
+
+ private FormattingPreferences getPreferences(final boolean wrapLongTags,
+ final boolean alignCloseChar, final int maxLineWidth) {
+
+ return new FormattingPreferences() {
+
+ public boolean alignElementCloseChar() {
+ return alignCloseChar;
+ }
+
+ public boolean wrapLongTags() {
+ return wrapLongTags;
+ }
+
+ public int getMaximumLineWidth() {
+ return maxLineWidth;
+ }
+ };
+ }
+
+ private void simpleTest(String source, String target,
+ FormattingPreferences prefs, String indent, String lineDelimiter) throws Exception {
+
+ String result = XmlTagFormatter.format(source, prefs, indent, lineDelimiter);
+ assertEquals(target, result);
+ }
+
+ /* ---------------- Test Methods ---------------- */
+
+ public void testParserGetElementName() throws Exception {
+
+ InnerClassFactory.TagParser tagParser = InnerClassFactory
+ .createTagParser();
+
+ String elementFixture1 = "<myElement attribute1=\"value1\" attribute2=\"value2\" />"; //$NON-NLS-1$
+ assertEquals("myElement", tagParser.getElementName(elementFixture1)); //$NON-NLS-1$
+
+ String elementFixture2 = "<myElement\t\nattribute1=\"value1\" attribute2=\"value2\" />"; //$NON-NLS-1$
+ assertEquals("myElement", tagParser.getElementName(elementFixture2)); //$NON-NLS-1$
+
+ assertEquals("x", tagParser.getElementName("<x/>")); //$NON-NLS-1$ //$NON-NLS-2$
+ assertEquals("x", tagParser.getElementName("<x>")); //$NON-NLS-1$ //$NON-NLS-2$
+ assertEquals("x:y", tagParser.getElementName("<x:y/>")); //$NON-NLS-1$ //$NON-NLS-2$
+ assertEquals("x:y", tagParser.getElementName("<x:y abc/>")); //$NON-NLS-1$ //$NON-NLS-2$
+
+ Exception e1 = null;
+ try {
+ tagParser.getElementName("<>"); //$NON-NLS-1$
+ } catch (Exception e) {
+ e1 = e;
+ }
+ assertNotNull(e1);
+ assertTrue(e1.getClass().isAssignableFrom(
+ InnerClassFactory.ParseException.class));
+
+ Exception e2 = null;
+ try {
+ tagParser.getElementName("<>"); //$NON-NLS-1$
+ } catch (Exception e) {
+ e2 = e;
+ }
+ assertNotNull(e2);
+ assertTrue(e2.getClass().isAssignableFrom(
+ InnerClassFactory.ParseException.class));
+
+ }
+
+ public void testParserGetAttributes() throws Exception {
+ InnerClassFactory.TagParser tagParser = InnerClassFactory
+ .createTagParser();
+
+ List attributePairs;
+
+ // test normal situation
+ attributePairs = tagParser
+ .getAttibutes("<myElement attribute1=\"value1\" attribute2=\"value2\" />"); //$NON-NLS-1$
+
+ assertEquals(2, attributePairs.size());
+ InnerClassFactory.validateAttributePair(attributePairs.get(0),
+ "attribute1", "value1"); //$NON-NLS-1$ //$NON-NLS-2$
+ InnerClassFactory.validateAttributePair(attributePairs.get(1),
+ "attribute2", "value2"); //$NON-NLS-1$ //$NON-NLS-2$
+
+
+ // test with extra whitespace and funny quotes
+ attributePairs = tagParser
+ .getAttibutes("<myElement \nattribute1 = 'value1\"'\nattribute2\t=\"value2'\" />"); //$NON-NLS-1$
+
+ assertEquals(2, attributePairs.size());
+ InnerClassFactory.validateAttributePair(attributePairs.get(0),
+ "attribute1", "value1\""); //$NON-NLS-1$ //$NON-NLS-2$
+ InnerClassFactory.validateAttributePair(attributePairs.get(1),
+ "attribute2", "value2'"); //$NON-NLS-1$ //$NON-NLS-2$
+
+// TODO attributes which contain whitespace should throw a parse error
+//
+// // test parse errors - whitespace in attribute name
+// Exception e1 = null;
+// try {
+// attributePairs = tagParser
+// .getAttibutes("<myElement at tribute1 = \"value1\" attribute2=\"value2\" />");
+// } catch (Exception e) {
+// e1 = e;
+// }
+// assertNotNull(e1);
+// assertTrue(e1.getClass().isAssignableFrom(
+// InnerClassFactory.ParseException.class));
+
+
+ // test parse errors - equals in the wrong place
+ Exception e2 = null;
+ try {
+ attributePairs = tagParser
+ .getAttibutes("<myElement attribute1=\"value1\" = attribute2=\"value2\" />"); //$NON-NLS-1$
+ } catch (Exception e) {
+ e2 = e;
+ }
+ assertNotNull(e2);
+ assertTrue(e2.getClass().isAssignableFrom(
+ InnerClassFactory.ParseException.class));
+
+
+ // test parse errors - quotes in the wrong place
+ Exception e3 = null;
+ try {
+ attributePairs = tagParser
+ .getAttibutes("<myElement attribute1=\"\"value1\" attribute2=\"value2\" />"); //$NON-NLS-1$
+ } catch (Exception e) {
+ e3 = e;
+ }
+ assertNotNull(e3);
+ assertTrue(e3.getClass().isAssignableFrom(InnerClassFactory.ParseException.class));
+ }
+
+ public void testFormat01() throws Exception {
+ String lineSep= System.getProperty("line.separator");
+ String indent = "\t"; //$NON-NLS-1$
+ String source = "<target name=\"myTargetName\" depends=\"a,b,c,d,e,f,g\" description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
+ String target = "<target name=\"myTargetName\"" + lineSep //$NON-NLS-1$
+ + indent
+ + " depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
+ + indent
+ + " description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
+
+ simpleTest(source, target, getPreferences(true, false, 60), indent, lineSep);
+ }
+
+ public void testFormat02() throws Exception {
+ String lineSep= System.getProperty("line.separator");
+ String indent = "\t"; //$NON-NLS-1$
+ String source = "<target name=\"myTargetName\" depends=\"a,b,c,d,e,f,g\" description=\"This is a very long element which ought to be wrapped.\">"; //$NON-NLS-1$
+ String target = "<target name=\"myTargetName\"" + lineSep //$NON-NLS-1$
+ + indent
+ + " depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
+ + indent
+ + " description=\"This is a very long element which ought to be wrapped.\"" + lineSep //$NON-NLS-1$
+ + indent + ">"; //$NON-NLS-1$
+
+ simpleTest(source, target, getPreferences(true, true, 60), indent, lineSep);
+ }
+
+ public void testBug73411() throws Exception {
+ String lineSep= System.getProperty("line.separator");
+ String indent = "\t"; //$NON-NLS-1$
+ String source = "<target name='myTargetName' depends=\"a,b,c,d,e,f,g\" description=\'This is a very long element which ought to be \"wrapped\".'>"; //$NON-NLS-1$
+ String target = "<target name='myTargetName'" + lineSep //$NON-NLS-1$
+ + indent
+ + " depends=\"a,b,c,d,e,f,g\"" + lineSep //$NON-NLS-1$
+ + indent
+ + " description='This is a very long element which ought to be \"wrapped\".'" + lineSep //$NON-NLS-1$
+ + indent + ">"; //$NON-NLS-1$
+
+ simpleTest(source, target, getPreferences(true, true, 60), indent, lineSep);
+ }
+
+ public void testLineRequiresWrap() throws Exception {
+
+ InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory.createTagFormatter();
+
+ boolean shouldWrap = tagFormatter.lineRequiresWrap(
+ "\t\t <myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
+ 70, 8);
+ boolean shouldNotWrap = tagFormatter.lineRequiresWrap(
+ "\t\t <myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
+ 70, 8);
+ assertTrue(shouldWrap);
+ assertTrue(!shouldNotWrap);
+
+ }
+
+ public void testTabExpandedLineWidth() throws Exception {
+
+ InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory.createTagFormatter();
+
+ assertEquals(20, tagFormatter.tabExpandedLineWidth("\t 1234567890", 8)); //$NON-NLS-1$
+ assertEquals(10, tagFormatter.tabExpandedLineWidth("1234567890", 8)); //$NON-NLS-1$
+ assertEquals(19, tagFormatter.tabExpandedLineWidth("\t1\t2 34567890", 3)); //$NON-NLS-1$
+ }
+
+ public void testTabToStringAndMinimumLength() throws Exception {
+ InnerClassFactory.Tag tag = InnerClassFactory.createTag();
+
+ tag.setElementName("myElement"); //$NON-NLS-1$
+ tag.setClosed(false);
+ assertEquals("<myElement>", tag.toString()); //$NON-NLS-1$
+ assertEquals(tag.toString().length(), tag.minimumLength());
+
+ tag.setClosed(true);
+ assertEquals("<myElement />", tag.toString()); //$NON-NLS-1$
+ assertEquals(tag.toString().length(), tag.minimumLength());
+
+ tag.addAttribute("attribute1", "value1", '"'); //$NON-NLS-1$ //$NON-NLS-2$
+ tag.addAttribute("attribute2", "value2", '"'); //$NON-NLS-1$ //$NON-NLS-2$
+ assertEquals(
+ "<myElement attribute1=\"value1\" attribute2=\"value2\" />", //$NON-NLS-1$
+ tag.toString());
+ assertEquals(tag.toString().length(), tag.minimumLength());
+
+ tag.setClosed(false);
+ assertEquals("<myElement attribute1=\"value1\" attribute2=\"value2\">", //$NON-NLS-1$
+ tag.toString());
+ assertEquals(tag.toString().length(), tag.minimumLength());
+ }
+
+ public void testWrapTag() throws Exception {
+
+ InnerClassFactory.Tag tag = InnerClassFactory.createTag();
+
+ InnerClassFactory.TagFormatter tagFormatter = InnerClassFactory
+ .createTagFormatter();
+
+ FormattingPreferences dontAlignCloseChar = new FormattingPreferences() {
+
+ public boolean alignElementCloseChar() {
+ return false;
+ }
+ };
+ FormattingPreferences doAlignCloseChar = new FormattingPreferences() {
+
+ public boolean alignElementCloseChar() {
+ return true;
+ }
+ };
+
+ tag.setElementName("myElement"); //$NON-NLS-1$
+ tag.addAttribute("attribute1", "value1", '"'); //$NON-NLS-1$ //$NON-NLS-2$
+ tag.addAttribute("attribute2", "value2", '"'); //$NON-NLS-1$ //$NON-NLS-2$
+
+ tag.setClosed(true);
+
+ String lineSep= System.getProperty("line.separator");
+ assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
+ + "\t\t attribute2=\"value2\" />", tagFormatter //$NON-NLS-1$
+ .wrapTag(tag, dontAlignCloseChar, "\t\t ", lineSep)); //$NON-NLS-1$
+
+ assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
+ + "\t\t attribute2=\"value2\"" + lineSep + "\t\t />", //$NON-NLS-1$
+ tagFormatter.wrapTag(tag, doAlignCloseChar, "\t\t ", lineSep)); //$NON-NLS-1$
+
+ tag.setClosed(false);
+
+ assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
+ + "\t\t attribute2=\"value2\">", tagFormatter //$NON-NLS-1$
+ .wrapTag(tag, dontAlignCloseChar, "\t\t ", lineSep)); //$NON-NLS-1$
+
+ assertEquals("<myElement attribute1=\"value1\"" + lineSep //$NON-NLS-1$
+ + "\t\t attribute2=\"value2\"" + lineSep + "\t\t >", //$NON-NLS-1$
+ tagFormatter.wrapTag(tag, doAlignCloseChar, "\t\t ", lineSep)); //$NON-NLS-1$
+
+ }
+
+ public void testBug63558() throws Exception {
+
+ // Ordinarily the double space after the element name would be repaired
+ // but if the formatter is working correctly these examples will be
+ // considered malformed and will be passed through untouched.
+ String lineSep= System.getProperty("line.separator");
+ String source1 = "<echo file=\"foo\">" + lineSep + "&lt;html>&lt;body>&lt;pre>" //$NON-NLS-1$
+ + "${compilelog}&lt;/pre>&lt;/body>&lt;/html>"; //$NON-NLS-1$
+ FormattingPreferences prefs = getPreferences(true, false, 60); //$NON-NLS-1$
+ simpleTest(source1, source1, prefs, "\t", lineSep);
+
+ String source2 = "<echo file=\"foo\"/bar/baz></echo>"; //$NON-NLS-1$
+ simpleTest(source2, source2, prefs, "\t", lineSep);
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/EditorTestHelper.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/EditorTestHelper.java
new file mode 100644
index 000000000..5196cd722
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/EditorTestHelper.java
@@ -0,0 +1,148 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.editor.performance;
+
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.jobs.IJobManager;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.texteditor.IDocumentProvider;
+import org.eclipse.ui.texteditor.ITextEditor;
+
+
+/**
+ * @since 3.1
+ */
+public class EditorTestHelper {
+
+ public static IEditorPart openInEditor(IFile file, boolean runEventLoop) throws PartInitException {
+ IEditorPart part= IDE.openEditor(getActivePage(), file);
+ if (runEventLoop)
+ runEventQueue(part);
+ return part;
+ }
+
+ public static IEditorPart openInEditor(IFile file, String editorId, boolean runEventLoop) throws PartInitException {
+ IEditorPart part= IDE.openEditor(getActivePage(), file, editorId);
+ if (runEventLoop)
+ runEventQueue(part);
+ return part;
+ }
+
+ public static IDocument getDocument(ITextEditor editor) {
+ IDocumentProvider provider= editor.getDocumentProvider();
+ IEditorInput input= editor.getEditorInput();
+ return provider.getDocument(input);
+ }
+
+ public static void revertEditor(ITextEditor editor, boolean runEventQueue) {
+ editor.doRevertToSaved();
+ if (runEventQueue)
+ runEventQueue(editor);
+ }
+
+ public static void closeAllEditors() {
+ IWorkbenchPage page= getActivePage();
+ if (page != null)
+ page.closeAllEditors(false);
+ }
+
+ public static void runEventQueue() {
+ IWorkbenchWindow window= getActiveWorkbenchWindow();
+ if (window != null)
+ runEventQueue(window.getShell());
+ }
+
+ public static void runEventQueue(IWorkbenchPart part) {
+ runEventQueue(part.getSite().getShell());
+ }
+
+ public static void runEventQueue(Shell shell) {
+ while (shell.getDisplay().readAndDispatch());
+ }
+
+ public static void runEventQueue(long minTime) {
+ long nextCheck= System.currentTimeMillis() + minTime;
+ while (System.currentTimeMillis() < nextCheck) {
+ runEventQueue();
+ sleep(1);
+ }
+ }
+
+ public static IWorkbenchWindow getActiveWorkbenchWindow() {
+ return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ }
+
+ public static IWorkbenchPage getActivePage() {
+ IWorkbenchWindow window= getActiveWorkbenchWindow();
+ return window != null ? window.getActivePage() : null;
+ }
+
+ public static Display getActiveDisplay() {
+ IWorkbenchWindow window= getActiveWorkbenchWindow();
+ return window != null ? window.getShell().getDisplay() : null;
+ }
+
+ public static boolean calmDown(long minTime, long maxTime, long intervalTime) {
+ long startTime= System.currentTimeMillis() + minTime;
+ runEventQueue();
+ while (System.currentTimeMillis() < startTime)
+ runEventQueue(intervalTime);
+
+ long endTime= maxTime > 0 ? System.currentTimeMillis() + maxTime : Long.MAX_VALUE;
+ boolean calm= isCalm();
+ while (!calm && System.currentTimeMillis() < endTime) {
+ runEventQueue(intervalTime);
+ calm= isCalm();
+ }
+// System.out.println("--------------------------------------------------");
+ return calm;
+ }
+
+ public static void sleep(int intervalTime) {
+ try {
+ Thread.sleep(intervalTime);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static boolean isCalm() {
+ IJobManager jobManager= Job.getJobManager();
+ Job[] jobs= jobManager.find(null);
+ for (int i= 0; i < jobs.length; i++) {
+ Job job= jobs[i];
+ int state= job.getState();
+// System.out.println(job.getName() + ": " + getStateName(state));
+ if (state == Job.RUNNING || state == Job.WAITING) {
+// System.out.println();
+ return false;
+ }
+ }
+// System.out.println();
+ return true;
+ }
+
+ public static void bringToTop() {
+ getActiveWorkbenchWindow().getShell().forceActive();
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/NonInitialTypingTest.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/NonInitialTypingTest.java
new file mode 100644
index 000000000..ec9b947fa
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/performance/NonInitialTypingTest.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui.editor.performance;
+
+import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
+
+/**
+ * Measures the time to type in one single target into a large buildfile
+ * @since 3.1
+ */
+public class NonInitialTypingTest extends AbstractAntUITest {
+
+ public NonInitialTypingTest(String name) {
+ super(name);
+ }
+
+// private ITextEditor fEditor;
+//
+// private static final char[] TARGET= ("<target name=\"newTarget\" >\r" +
+// "<echo>\"New Target\"</echo>\r" +
+// "</target>\r").toCharArray();
+//
+// private PerformanceMeter fMeter;
+//
+// private KeyboardProbe fKeyboardProbe;
+//
+// protected void setUp() throws PartInitException, BadLocationException {
+// EditorTestHelper.runEventQueue();
+// IFile file= getProject().getFolder("buildfiles").getFolder("performance").getFile("build.xml");
+// fEditor= (ITextEditor) EditorTestHelper.openInEditor(file, true);
+// // dirty editor to avoid initial dirtying / validate edit costs
+// dirtyEditor();
+// Performance performance= Performance.getDefault();
+// fMeter= performance.createPerformanceMeter(performance.getDefaultScenarioId(this));
+// fKeyboardProbe= new KeyboardProbe();
+//
+// int offset= getInsertPosition();
+// fEditor.getSelectionProvider().setSelection(new TextSelection(offset, 0));
+// EditorTestHelper.runEventQueue();
+// sleep(1000);
+// }
+//
+// private void dirtyEditor() {
+// fEditor.getSelectionProvider().setSelection(new TextSelection(0, 0));
+// EditorTestHelper.runEventQueue();
+// sleep(1000);
+//
+// Display display= EditorTestHelper.getActiveDisplay();
+// fKeyboardProbe.pressChar('{', display);
+// SWTEventHelper.pressKeyCode(display, SWT.BS);
+// sleep(1000);
+// }
+//
+// protected void tearDown() throws Exception {
+// sleep(1000);
+// EditorTestHelper.revertEditor(fEditor, true);
+// EditorTestHelper.closeAllEditors();
+//
+// fMeter.commit();
+// }
+//
+// public void testTypeAMethod() {
+// Display display= EditorTestHelper.getActiveDisplay();
+//
+// fMeter.start();
+// for (int i= 0; i < TARGET.length; i++) {
+// fKeyboardProbe.pressChar(TARGET[i], display);
+// }
+// fMeter.stop();
+// }
+//
+// private synchronized void sleep(int time) {
+// try {
+// wait(time);
+// } catch (InterruptedException e) {
+// }
+// }
+//
+// private int getInsertPosition() throws BadLocationException {
+// IDocument document= EditorTestHelper.getDocument(fEditor);
+// int lines= document.getNumberOfLines();
+// int offset= document.getLineOffset(lines - 2);
+// return offset;
+// }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestLocationProvider.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestLocationProvider.java
new file mode 100644
index 000000000..7f7c6087e
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestLocationProvider.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui.editor.support;
+
+import java.io.File;
+
+import org.eclipse.ant.internal.ui.model.LocationProvider;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+
+
+public class TestLocationProvider extends LocationProvider {
+
+ private File buildFile;
+
+ public TestLocationProvider(File buildFile) {
+ super(null);
+ this.buildFile= buildFile;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ant.internal.ui.editor.outline.ILocationProvider#getLocation()
+ */
+ public IPath getLocation() {
+ return new Path(buildFile.getAbsolutePath());
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestProblemRequestor.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestProblemRequestor.java
new file mode 100644
index 000000000..db678daa3
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestProblemRequestor.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui.editor.support;
+
+import org.eclipse.ant.internal.ui.model.IProblem;
+import org.eclipse.ant.internal.ui.model.IProblemRequestor;
+
+public class TestProblemRequestor implements IProblemRequestor {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ant.internal.ui.editor.outline.IProblemRequestor#acceptProblem(org.eclipse.ant.internal.ui.editor.outline.IProblem)
+ */
+ public void acceptProblem(IProblem problem) {
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ant.internal.ui.editor.outline.IProblemRequestor#beginReporting()
+ */
+ public void beginReporting() {
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ant.internal.ui.editor.outline.IProblemRequestor#endReporting()
+ */
+ public void endReporting() {
+
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestTextCompletionProcessor.java b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestTextCompletionProcessor.java
new file mode 100644
index 000000000..5b611ad3f
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Editor Tests/org/eclipse/ant/tests/ui/editor/support/TestTextCompletionProcessor.java
@@ -0,0 +1,224 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui.editor.support;
+
+import java.io.File;
+import java.io.IOException;
+
+import junit.framework.Assert;
+
+import org.eclipse.ant.internal.ui.editor.AntEditor;
+import org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor;
+import org.eclipse.ant.internal.ui.model.AntModel;
+import org.eclipse.jface.text.Document;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.contentassist.ICompletionListener;
+import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jface.text.contentassist.IContentAssistantExtension2;
+import org.eclipse.jface.text.source.ISourceViewer;
+import org.w3c.dom.Element;
+
+public class TestTextCompletionProcessor extends AntEditorCompletionProcessor {
+
+ public final static int TEST_PROPOSAL_MODE_NONE = AntEditorCompletionProcessor.PROPOSAL_MODE_NONE;
+ public final static int TEST_PROPOSAL_MODE_BUILDFILE = AntEditorCompletionProcessor.PROPOSAL_MODE_BUILDFILE;
+ public final static int TEST_PROPOSAL_MODE_TASK_PROPOSAL = AntEditorCompletionProcessor.PROPOSAL_MODE_TASK_PROPOSAL;
+ public final static int TEST_PROPOSAL_MODE_PROPERTY_PROPOSAL = AntEditorCompletionProcessor.PROPOSAL_MODE_PROPERTY_PROPOSAL;
+ public final static int TEST_PROPOSAL_MODE_ATTRIBUTE_PROPOSAL = AntEditorCompletionProcessor.PROPOSAL_MODE_ATTRIBUTE_PROPOSAL;
+ public final static int TEST_PROPOSAL_MODE_TASK_PROPOSAL_CLOSING = AntEditorCompletionProcessor.PROPOSAL_MODE_TASK_PROPOSAL_CLOSING;
+ public final static int TEST_PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL = AntEditorCompletionProcessor.PROPOSAL_MODE_ATTRIBUTE_VALUE_PROPOSAL;
+
+ private File fEditedFile;
+ private ISourceViewer fViewer;
+ private boolean fNeedsToDispose= true;
+
+
+
+ public TestTextCompletionProcessor(AntModel model) {
+ super(model);
+ fContentAssistant= new IContentAssistantExtension2() {
+ public void setEmptyMessage(String message) {
+ }
+
+ public void setStatusMessage(String message) {
+ }
+
+ public void setStatusLineVisible(boolean show) {
+ }
+
+ public void setShowEmptyList(boolean showEmpty) {
+ }
+
+ public void setRepeatedInvocationMode(boolean cycling) {
+ }
+
+ public void removeCompletionListener(ICompletionListener listener) {
+ }
+
+ public void addCompletionListener(ICompletionListener listener) {
+
+ }
+ };
+ }
+
+ public TestTextCompletionProcessor(AntEditor editor) {
+ this(editor.getAntModel());
+ fViewer= editor.getViewer();
+ fNeedsToDispose= false;
+ }
+
+ public TestTextCompletionProcessor() {
+ this((AntModel)null);
+ }
+
+ public ICompletionProposal[] getAttributeProposals(String taskName, String prefix) {
+ if (cursorPosition == -1) {
+ cursorPosition= taskName.length();
+ }
+ return super.getAttributeProposals(taskName, prefix);
+ }
+
+ public Element findChildElementNamedOf(Element anElement, String childElementName) {
+ return super.findChildElementNamedOf(anElement, childElementName);
+ }
+
+ public ICompletionProposal[] getTaskProposals(String text, String parentName, String prefix) {
+ cursorPosition= Math.max(0, text.length() - 1);
+ return super.getTaskProposals(new Document(text), parentName, prefix);
+ }
+
+ public ICompletionProposal[] getTaskProposals(IDocument document, String parentName, String aPrefix) {
+ cursorPosition= Math.max(0, document.getLength() - 1);
+ return super.getTaskProposals(document, parentName, aPrefix);
+ }
+
+ public int determineProposalMode(String text, int theCursorPosition, String prefix) {
+ return super.determineProposalMode(new Document(text), theCursorPosition, prefix);
+ }
+
+ public String getParentName(String text, int aLineNumber, int aColumnNumber) {
+ return super.getParentName(new Document(text), aLineNumber, aColumnNumber);
+ }
+
+ public String getParentName(IDocument doc, int aLineNumber, int aColumnNumber) {
+ return super.getParentName(doc, aLineNumber, aColumnNumber);
+ }
+
+ public String getPrefixFromDocument(String aDocumentText, int anOffset) {
+ String prefix= super.getPrefixFromDocument(aDocumentText, anOffset);
+ currentPrefix= null;
+ return prefix;
+ }
+
+ public ICompletionProposal[] getPropertyProposals(IDocument document, String prefix, int cursorPos) {
+ return super.getPropertyProposals(document, prefix, cursorPos);
+ }
+
+ /**
+ * Returns the edited File that org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor sets or a temporary
+ * file, which only serves as a dummy.
+ * @see org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor#getEditedFile()
+ */
+ public File getEditedFile() {
+ if (fEditedFile != null){
+ return fEditedFile;
+ }
+ File tempFile = null;
+ try {
+ tempFile = File.createTempFile("test", null);
+ } catch (IOException e) {
+ Assert.fail(e.getMessage());
+ }
+ tempFile.deleteOnExit();
+ return tempFile;
+ }
+
+ public void setLineNumber(int aLineNumber) {
+ lineNumber = aLineNumber;
+ }
+
+ public void setColumnNumber(int aColumnNumber) {
+ columnNumber = aColumnNumber;
+ }
+
+ public void setCursorPosition(int cursorPosition) {
+ this.cursorPosition = cursorPosition;
+ }
+
+ public void setEditedFile(File aFile) {
+ fEditedFile= aFile;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor#getTargetAttributeValueProposals(org.eclipse.jface.text.IDocument, java.lang.String, java.lang.String, java.lang.String)
+ */
+ public ICompletionProposal[] getTargetAttributeValueProposals(IDocument document, String textToSearch, String prefix, String attributeName) {
+ return super.getTargetAttributeValueProposals(document, textToSearch, prefix, attributeName);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor#getAntCallAttributeValueProposals(org.eclipse.jface.text.IDocument, java.lang.String, java.lang.String)
+ */
+ public ICompletionProposal[] getAntCallAttributeValueProposals(IDocument document, String prefix, String attributeName) {
+ return super.getAntCallAttributeValueProposals(document, prefix, attributeName);
+ }
+ /**
+ * Since the testing occurs without necessarily having an associated viewer, return
+ * a dummy value.
+ */
+ protected char getPreviousChar() {
+ return '?';
+ }
+
+ /**
+ * Returns whether the specified task name is known.
+ */
+ protected boolean isKnownElement(String elementName) {
+ if (antModel != null) {
+ return super.isKnownElement(elementName);
+ }
+ return getDtd().getElement(elementName) != null ;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor#getProposalsFromDocument(org.eclipse.jface.text.IDocument, java.lang.String)
+ */
+ public ICompletionProposal[] getProposalsFromDocument(IDocument document, String prefix) {
+ return super.getProposalsFromDocument(document, prefix);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor#getBuildFileProposals(org.eclipse.jface.text.IDocument, java.lang.String)
+ */
+ public ICompletionProposal[] getBuildFileProposals(String text, String prefix) {
+ return super.getBuildFileProposals(new Document(text), prefix);
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.ant.internal.ui.editor.AntEditorCompletionProcessor#determineTemplateProposals(org.eclipse.jface.text.ITextViewer, int)
+ */
+ public ICompletionProposal[] determineTemplateProposals() {
+ return super.determineTemplateProposals(fViewer, cursorPosition);
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeCompletionProposals(org.eclipse.jface.text.ITextViewer, int)
+ */
+ public ICompletionProposal[] computeCompletionProposals(int documentOffset) {
+ return super.computeCompletionProposals(fViewer, documentOffset);
+ }
+
+ public void dispose() {
+ if (fNeedsToDispose && antModel != null) {
+ //not working with an editor
+ antModel.dispose();
+ }
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildPerformanceTest.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildPerformanceTest.java
new file mode 100644
index 000000000..974792034
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildPerformanceTest.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.test.performance.Dimension;
+import org.eclipse.test.performance.Performance;
+import org.eclipse.test.performance.PerformanceMeter;
+
+public class AbstractAntUIBuildPerformanceTest extends AbstractAntUIBuildTest {
+
+ protected PerformanceMeter fPerformanceMeter;
+
+ /**
+ * Constructs a performance test case with the given name.
+ * @param name the name of the performance test case
+ */
+ public AbstractAntUIBuildPerformanceTest(String name) {
+ super(name);
+ }
+
+ /**
+ * Overridden to create a default performance meter for this test case.
+ * @throws Exception
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ Performance performance= Performance.getDefault();
+ fPerformanceMeter= performance.createPerformanceMeter(performance.getDefaultScenarioId(this));
+ }
+
+ /**
+ * Overridden to dispose of the performance meter.
+ * @throws Exception
+ */
+ protected void tearDown() throws Exception {
+ fPerformanceMeter.dispose();
+ }
+
+ /**
+ * Mark the scenario of this test case
+ * to be included into the global performance summary. The summary shows
+ * the given dimension of the scenario and labels the scenario with the short name.
+ *
+ * @param shortName a short (shorter than 40 characters) descritive name of the scenario
+ * @param dimension the dimension to show in the summary
+ */
+ public void tagAsGlobalSummary(String shortName, Dimension dimension) {
+ Performance performance= Performance.getDefault();
+ performance.tagAsGlobalSummary(fPerformanceMeter, shortName, new Dimension[] { dimension } );
+ }
+
+ /**
+ * Mark the scenario of this test case
+ * to be included into the performance summary. The summary shows
+ * the given dimension of the scenario and labels the scenario with the short name.
+ *
+ * @param shortName a short (shorter than 40 characters) descriptive name of the scenario
+ * @param dimension the dimension to show in the summary
+ */
+ public void tagAsSummary(String shortName, Dimension dimension) {
+ Performance performance= Performance.getDefault();
+ performance.tagAsSummary(fPerformanceMeter, shortName, new Dimension[] { dimension } );
+ }
+
+ /**
+ * Mark the scenario represented by the given PerformanceMeter
+ * to be included into the global performance summary. The summary shows
+ * the given dimensions of the scenario and labels the scenario with the short name.
+ *
+ * @param shortName a short (shorter than 40 characters) descriptive name of the scenario
+ * @param dimensions an array of dimensions to show in the summary
+ */
+ public void tagAsGlobalSummary(String shortName, Dimension[] dimensions) {
+ Performance performance= Performance.getDefault();
+ performance.tagAsGlobalSummary(fPerformanceMeter, shortName, dimensions );
+ }
+
+ /**
+ * Called from within a test case immediately before the code to measure is run.
+ * It starts capturing of performance data.
+ * Must be followed by a call to {@link PerformanceTestCase#stopMeasuring()} before subsequent calls
+ * to this method or {@link PerformanceTestCase#commitMeasurements()}.
+ */
+ protected void startMeasuring() {
+ fPerformanceMeter.start();
+ }
+
+ protected void stopMeasuring() {
+ fPerformanceMeter.stop();
+ }
+
+ protected void commitMeasurements() {
+ fPerformanceMeter.commit();
+ }
+
+ /**
+ * Asserts default properties of the measurements captured for this test case.
+ *
+ * @throws RuntimeException if the properties do not hold
+ */
+ protected void assertPerformance() {
+ Performance.getDefault().assertPerformance(fPerformanceMeter);
+ }
+
+ /**
+ * Asserts that the measurement specified by the given dimension
+ * is within a certain range with respect to some reference value.
+ * If the specified dimension isn't available, the call has no effect.
+ *
+ * @param dim the Dimension to check
+ * @param lowerPercentage a negative number indicating the percentage the measured value is allowed to be smaller than some reference value
+ * @param upperPercentage a positive number indicating the percentage the measured value is allowed to be greater than some reference value
+ * @throws RuntimeException if the properties do not hold
+ */
+ protected void assertPerformanceInRelativeBand(Dimension dim, int lowerPercentage, int upperPercentage) {
+ Performance.getDefault().assertPerformanceInRelativeBand(fPerformanceMeter, dim, lowerPercentage, upperPercentage);
+ }
+
+ /**
+ * Launches the Ant build for this config.
+ * Waits for all of the lines to be appended to the console.
+ *
+ * @param config the launch configuration to execute
+ * @param i the number of times to perform the launch
+ */
+ protected void launch(ILaunchConfiguration config, int i) throws CoreException {
+ startMeasuring();
+ for (int j = 0; j < i; j++) {
+ super.launch(config);
+ }
+ stopMeasuring();
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildTest.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildTest.java
new file mode 100644
index 000000000..8e4eca7a5
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AbstractAntUIBuildTest.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui;
+
+import junit.framework.TestResult;
+
+import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.console.IHyperlink;
+
+
+public abstract class AbstractAntUIBuildTest extends AbstractAntUITest {
+
+ /**
+ * Flag that indicates test are in progress
+ */
+ protected boolean testing = true;
+
+ public AbstractAntUIBuildTest(String name) {
+ super(name);
+ }
+
+ /**
+ * Runs the test and collects the result in a TestResult without blocking
+ * the UI thread.
+ */
+ public void run(final TestResult result) {
+ final Display display = Display.getCurrent();
+ Thread thread = null;
+ try {
+ Runnable r = new Runnable() {
+ public void run() {
+ AbstractAntUIBuildTest.super.run(result);
+ testing = false;
+ display.wake();
+ }
+ };
+ thread = new Thread(r);
+ thread.start();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ while (testing) {
+ try {
+ if (!display.readAndDispatch())
+ display.sleep();
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * Launches the Ant build with the buildfile name (no extension).
+ * Waits for all of the lines to be appended to the console.
+ *
+ * @param buildFileName the buildfile to execute
+ * @return thread in which the first suspend event occurred
+ */
+ protected void launch(String buildFileName) throws CoreException {
+ super.launch(buildFileName);
+ }
+
+ /**
+ * Launches the launch configuration
+ * Waits for all of the lines to be appended to the console.
+ *
+ * @param config the config to execute
+ * @return thread in which the first suspend event occurred
+ */
+ protected void launch(ILaunchConfiguration config) throws CoreException {
+ launchAndTerminate(config, 20000);
+ }
+
+ protected void activateLink(final IHyperlink link) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ link.linkActivated();
+ }
+ });
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest#launch(java.lang.String, java.lang.String)
+ */
+ protected void launch(String buildFileName, String arguments) throws CoreException {
+ super.launch(buildFileName, arguments);
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java
new file mode 100644
index 000000000..5f8933c10
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/AntUtilTests.java
@@ -0,0 +1,128 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.ant.internal.ui.AntUtil;
+import org.eclipse.ant.internal.ui.model.AntTargetNode;
+import org.eclipse.ant.launching.IAntLaunchConstants;
+import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
+import org.eclipse.core.externaltools.internal.IExternalToolConstants;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+
+public class AntUtilTests extends AbstractAntUITest {
+
+ public AntUtilTests(String name) {
+ super(name);
+ }
+
+ public void testGetTargetsLaunchConfiguration() throws CoreException {
+ String buildFileName= "echoing";
+ File buildFile= getBuildFile(buildFileName + ".xml");
+ String arguments= null;
+ Map properties= null;
+ String propertyFiles= null;
+ AntTargetNode[] targets= AntUtil.getTargets(buildFile.getAbsolutePath(), getLaunchConfiguration(buildFileName, arguments, properties, propertyFiles));
+ assertTrue(targets != null);
+ assertTrue("Incorrect number of targets retrieved; should be 4 was: " + targets.length, targets.length == 4);
+ assertContains("echo3", targets);
+ }
+
+ public void testGetTargetsLaunchConfigurationMinusD() throws CoreException {
+ String buildFileName= "importRequiringUserProp";
+ File buildFile= getBuildFile(buildFileName + ".xml");
+ String arguments= "-DimportFileName=toBeImported.xml";
+ Map properties= null;
+ String propertyFiles= null;
+ AntTargetNode[] targets= AntUtil.getTargets(buildFile.getAbsolutePath(), getLaunchConfiguration(buildFileName, arguments, properties, propertyFiles));
+ assertTrue(targets != null);
+ assertTrue("Incorrect number of targets retrieved; should be 3 was: " + targets.length, targets.length == 3);
+ assertContains("import-default", targets);
+ }
+
+ public void testGetTargetsLaunchConfigurationMinusDAndProperty() throws CoreException {
+ String buildFileName= "importRequiringUserProp";
+ File buildFile= getBuildFile(buildFileName + ".xml");
+ String arguments= "-DimportFileName=toBeImported.xml";
+ //arguments should win
+ Map properties= new HashMap();
+ properties.put("importFileName", "notToBeImported.xml");
+ String propertyFiles= null;
+ AntTargetNode[] targets= AntUtil.getTargets(buildFile.getAbsolutePath(), getLaunchConfiguration(buildFileName, arguments, properties, propertyFiles));
+ assertTrue(targets != null);
+ assertTrue("Incorrect number of targets retrieved; should be 3 was: " + targets.length, targets.length == 3);
+ assertContains("import-default", targets);
+ }
+
+
+ public void testGetTargetsLaunchConfigurationProperty() throws CoreException {
+ String buildFileName= "importRequiringUserProp";
+ File buildFile= getBuildFile(buildFileName + ".xml");
+ String arguments= null;
+ Map properties= new HashMap();
+ properties.put("importFileName", "toBeImported.xml");
+ String propertyFiles= null;
+ AntTargetNode[] targets= AntUtil.getTargets(buildFile.getAbsolutePath(), getLaunchConfiguration(buildFileName, arguments, properties, propertyFiles));
+ assertTrue(targets != null);
+ assertTrue("Incorrect number of targets retrieved; should be 3 was: " + targets.length, targets.length == 3);
+ assertContains("import-default", targets);
+ }
+
+ public void testGetTargetsLaunchConfigurationPropertyFile() throws CoreException {
+ String buildFileName= "importRequiringUserProp";
+ File buildFile= getBuildFile(buildFileName + ".xml");
+ String arguments= null;
+ Map properties= null;
+ String propertyFiles= "buildtest1.properties";
+ AntTargetNode[] targets= AntUtil.getTargets(buildFile.getAbsolutePath(), getLaunchConfiguration(buildFileName, arguments, properties, propertyFiles));
+ assertTrue(targets != null);
+ assertTrue("Incorrect number of targets retrieved; should be 3 was: " + targets.length, targets.length == 3);
+ assertContains("import-default", targets);
+ }
+
+ protected ILaunchConfiguration getLaunchConfiguration(String buildFileName, String arguments, Map properties, String propertyFiles) throws CoreException {
+ ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
+ assertNotNull("Could not locate launch configuration for " + buildFileName, config);
+ ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
+ if (arguments != null) {
+ copy.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, arguments);
+ }
+ if (properties != null) {
+ copy.setAttribute(IAntLaunchConstants.ATTR_ANT_PROPERTIES, properties);
+ }
+ if (propertyFiles != null) {
+ copy.setAttribute(IAntLaunchConstants.ATTR_ANT_PROPERTY_FILES, propertyFiles);
+ }
+ return copy;
+ }
+
+ /**
+ * Asserts that <code>displayString</code> is in one of the
+ * completion proposals.
+ */
+ private void assertContains(String targetName, AntTargetNode[] targets) {
+ boolean found = false;
+ for (int i = 0; i < targets.length; i++) {
+ AntTargetNode target = targets[i];
+ String foundName = target.getTargetName();
+ if(targetName.equals(foundName)) {
+ found = true;
+ break;
+ }
+ }
+ assertEquals("Did not find target: " + targetName, true, found);
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/AbstractAntPerformanceTest.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/AbstractAntPerformanceTest.java
new file mode 100644
index 000000000..b9fcd6eb4
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/AbstractAntPerformanceTest.java
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.performance;
+
+import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
+import org.eclipse.test.performance.PerformanceTestCase;
+
+/**
+ * Abstract class for ant performance tests, ensures the test project is created
+ * and ready in the test workspace.
+ *
+ * @since 3.5
+ */
+public abstract class AbstractAntPerformanceTest extends PerformanceTestCase {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.test.performance.PerformanceTestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ AbstractAntUITest.assertProject();
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/OpenLaunchConfigurationDialogTests.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/OpenLaunchConfigurationDialogTests.java
new file mode 100644
index 000000000..e3678133e
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/OpenLaunchConfigurationDialogTests.java
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui.performance;
+
+import org.eclipse.ant.internal.ui.IAntUIConstants;
+import org.eclipse.ant.tests.ui.editor.performance.EditorTestHelper;
+import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.internal.ui.DebugUIPlugin;
+import org.eclipse.debug.internal.ui.IInternalDebugUIConstants;
+import org.eclipse.debug.internal.ui.launchConfigurations.LaunchConfigurationsDialog;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.test.performance.Dimension;
+import org.eclipse.test.performance.PerformanceTestCase;
+import org.eclipse.ui.externaltools.internal.model.IExternalToolConstants;
+
+public class OpenLaunchConfigurationDialogTests extends PerformanceTestCase {
+
+ public static String fgIdentifier= IExternalToolConstants.ID_EXTERNAL_TOOLS_LAUNCH_GROUP;
+
+ public void testOpenAntLaunchConfigurationDialog1() {
+ //cold run
+ ILaunchConfiguration configuration= getLaunchConfiguration("big");
+ IStructuredSelection selection= new StructuredSelection(configuration);
+ for (int i = 0; i < 10; i++) {
+ openLCD(selection, fgIdentifier, 20);
+ }
+
+ commitMeasurements();
+ assertPerformance();
+ }
+
+ public void testOpenAntLaunchConfigurationDialog2() {
+ //warm run
+ ILaunchConfiguration configuration= getLaunchConfiguration("big");
+ IStructuredSelection selection= new StructuredSelection(configuration);
+ tagAsSummary("Open LCD on Targets tab", Dimension.ELAPSED_PROCESS);
+ for (int i = 0; i < 10; i++) {
+ openLCD(selection, fgIdentifier, 20);
+ }
+
+ commitMeasurements();
+ assertPerformance();
+ }
+
+ private ILaunchConfiguration getLaunchConfiguration(String buildFileName) {
+ IFile file = AbstractAntUITest.getJavaProject().getProject().getFolder("launchConfigurations").getFile(buildFileName + ".launch");
+ ILaunchConfiguration config = AbstractAntUITest.getLaunchManager().getLaunchConfiguration(file);
+ assertTrue("Could not find launch configuration for " + buildFileName, config.exists());
+ return config;
+ }
+
+ private void openLCD(final IStructuredSelection selection, final String groupIdentifier, int numberOfOpens) {
+ startMeasuring();
+ for (int i = 0; i < numberOfOpens; i++) {
+ //set a status to go to the targets tab
+ IStatus status = new Status(IStatus.INFO, IAntUIConstants.PLUGIN_ID, IAntUIConstants.STATUS_INIT_RUN_ANT, "", null); //$NON-NLS-1$
+ LaunchConfigurationsDialog dialog= new LaunchConfigurationsDialog(DebugUIPlugin.getShell(), DebugUIPlugin.getDefault().getLaunchConfigurationManager().getLaunchGroup(groupIdentifier));
+ dialog.setBlockOnOpen(false);
+ dialog.setOpenMode(LaunchConfigurationsDialog.LAUNCH_CONFIGURATION_DIALOG_OPEN_ON_SELECTION);
+ dialog.setInitialSelection(selection);
+ dialog.setInitialStatus(status);
+
+ dialog.open();
+ EditorTestHelper.runEventQueue(dialog.getShell());
+ dialog.close();
+ }
+ stopMeasuring();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.test.performance.PerformanceTestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ IPreferenceStore debugPreferenceStore = DebugUIPlugin.getDefault().getPreferenceStore();
+ debugPreferenceStore.setValue(IInternalDebugUIConstants.PREF_FILTER_LAUNCH_CLOSED, false);
+ debugPreferenceStore.setValue(IInternalDebugUIConstants.PREF_FILTER_LAUNCH_DELETED, false);
+ debugPreferenceStore.setValue(IInternalDebugUIConstants.PREF_FILTER_LAUNCH_TYPES, false);
+ debugPreferenceStore.setValue(IInternalDebugUIConstants.PREF_FILTER_WORKING_SETS, false);
+ EditorTestHelper.runEventQueue();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.test.performance.PerformanceTestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ IPreferenceStore debugPreferenceStore = DebugUIPlugin.getDefault().getPreferenceStore();
+ debugPreferenceStore.setToDefault(IInternalDebugUIConstants.PREF_FILTER_LAUNCH_CLOSED);
+ debugPreferenceStore.setToDefault(IInternalDebugUIConstants.PREF_FILTER_LAUNCH_DELETED);
+ debugPreferenceStore.setToDefault(IInternalDebugUIConstants.PREF_FILTER_LAUNCH_TYPES);
+ debugPreferenceStore.setToDefault(IInternalDebugUIConstants.PREF_FILTER_WORKING_SETS);
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/SeparateVMTests.java b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/SeparateVMTests.java
new file mode 100644
index 000000000..66af71cc5
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/Ant Tests/org/eclipse/ant/tests/ui/performance/SeparateVMTests.java
@@ -0,0 +1,105 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui.performance;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.ant.tests.ui.AbstractAntUIBuildPerformanceTest;
+import org.eclipse.core.externaltools.internal.IExternalToolConstants;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.ui.IDebugUIConstants;
+
+public class SeparateVMTests extends AbstractAntUIBuildPerformanceTest {
+
+ public SeparateVMTests(String name) {
+ super(name);
+ }
+
+ public static Test suite() {
+ return new TestSuite(SeparateVMTests.class);
+ }
+
+ /**
+ * Performance test for launching Ant in a separate vm.
+ */
+ public void testBuild() throws CoreException {
+ //tagAsSummary("Separate JRE Build", Dimension.ELAPSED_PROCESS);
+ ILaunchConfiguration config= getLaunchConfiguration("echoingSepVM");
+ //possible first time hit of the SWT pieces getting written from the JAR to the
+ //metadata area
+ launchAndTerminate(config, 20000);
+ for (int i = 0; i < 10; i++) {
+ launch(config, 10);
+ }
+ commitMeasurements();
+ assertPerformance();
+ }
+
+ /**
+ * Performance test for launching Ant in a separate vm with no console output.
+ */
+ public void testBuildNoConsole() throws CoreException {
+ //tagAsSummary("Separate JRE Build; capture output off", Dimension.ELAPSED_PROCESS);
+ ILaunchConfiguration config = getLaunchConfiguration("echoingSepVM");
+ assertNotNull("Could not locate launch configuration for " + "echoingSepVM", config);
+ ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
+ copy.setAttribute(IDebugUIConstants.ATTR_CAPTURE_IN_CONSOLE, false);
+ copy.setAttribute(DebugPlugin.ATTR_CAPTURE_OUTPUT, false);
+ //possible first time hit of the SWT pieces getting written from the JAR to the
+ //metadata area
+ launchAndTerminate(copy, 20000);
+ for (int i = 0; i < 10; i++) {
+ launch(copy, 10);
+ }
+ commitMeasurements();
+ assertPerformance();
+ }
+
+ /**
+ * Performance test for launching Ant in a separate vm with debug information.
+ */
+ public void testBuildMinusDebug() throws CoreException {
+ //tagAsSummary("Separate JRE Build; -debug", Dimension.ELAPSED_PROCESS);
+ ILaunchConfiguration config = getLaunchConfiguration("echoingSepVM");
+ assertNotNull("Could not locate launch configuration for " + "echoingSepVM", config);
+ ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
+ copy.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, "-debug");
+ //possible first time hit of the SWT pieces getting written from the JAR to the
+ //metadata area
+ launchAndTerminate(copy, 20000);
+ for (int i = 0; i < 10; i++) {
+ launch(copy, 10);
+ }
+ commitMeasurements();
+ assertPerformance();
+ }
+
+ /**
+ * Performance test for launching Ant in a separate vm with lots of links
+ */
+ public void testBuildWithLotsOfLinks() throws CoreException {
+ //tagAsSummary("Separate JRE Build; links", Dimension.ELAPSED_PROCESS);
+ ILaunchConfiguration config = getLaunchConfiguration("echoPropertiesSepVM");
+ //possible first time hit of the SWT pieces getting written from the JAR to the
+ //metadata area
+ launchAndTerminate(config, 20000);
+ for (int i = 0; i < 10; i++) {
+ launch(config, 10);
+ }
+ commitMeasurements();
+ assertPerformance();
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/about.html b/ant/org.eclipse.ant.tests.ui/about.html
new file mode 100644
index 000000000..460233046
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 2, 2006</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/build.properties b/ant/org.eclipse.ant.tests.ui/build.properties
new file mode 100644
index 000000000..03e042d2e
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/build.properties
@@ -0,0 +1,30 @@
+###############################################################################
+# Copyright (c) 2004, 2009 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+bin.includes = plugin.xml,\
+ plugin.properties,\
+ test.xml,\
+ about.html,\
+ testbuildfiles/,\
+ lib/,\
+ lib/*.jar,\
+ *.jar,\
+ META-INF/
+
+source.anttestsui.jar = test plugin/,\
+ Ant Editor Tests/,\
+ Ant Debug Tests/,\
+ External Tools/,\
+ Ant Tests/
+
+source.lib/antUITestsSupport.jar = test support/
+jars.compile.order=anttestsui.jar,lib/antUITestsSupport.jar
+output.lib/antUITestsSupport.jar = test_support_bin/
+output.anttestsui.jar = bin/
diff --git a/ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml b/ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml
new file mode 100644
index 000000000..bde51270f
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/buildfiles/buildAntTestsSupportJAR.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?> <!--
+ Copyright (c) 2005, 2006 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+
+<project name="build tests support jar" default="build" basedir="..">
+
+ <target name="build" description="Removes all build artifacts, recreates the support jar, and refreshes this plugin's resources" depends="clean, lib/antUITestsSupport.jar"/>
+
+ <target name="init" depends="properties">
+ <property name="version.suffix" value="_3.1.0"/>
+ <property name="temp.folder" value="${basedir}/temp.folder"/>
+ <property name="plugin.destination" value="${basedir}"/>
+ <property name="build.result.folder" value="${basedir}"/>
+ </target>
+
+ <target name="properties" if="eclipse.running">
+ <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+ </target>
+
+ <target name="lib/antUITestsSupport.jar" depends="init" description= "Builds the support JAR">
+ <property name="destdir" value="${temp.folder}/lib/antUITestsSupport.jar.bin"/>
+ <delete dir="${destdir}"/>
+ <mkdir dir="${destdir}"/>
+ <!-- compile the source code -->
+ <javac target="1.1" destdir="${destdir}" failonerror="false" verbose="false" debug="on" includeAntRuntime="yes"
+ classpath="${basedir}/bin;
+ ${eclipse.home}/plugins/org.eclipse.ant.core${version.suffix}.jar;
+ ${basedir}/../org.eclipse.ant.core/bin
+ ${eclipse.home}/plugins/org.eclipse.ant.core${version.suffix}.jar/lib/remoteAnt.jar;
+ ${basedir}/../org.eclipse.ant.ui/lib/remoteAnt.jar">
+ <src path="test support/"/>
+ </javac>
+ <mkdir dir="${build.result.folder}/lib"/>
+ <jar destfile="${build.result.folder}/lib/antUITestsSupport.jar" basedir="${destdir}"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+
+ <target name="clean" depends="init">
+ <delete file="${build.result.folder}/lib/antUITestsSupport.jar"/>
+ <delete dir="${temp.folder}"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/icons/ant.gif b/ant/org.eclipse.ant.tests.ui/icons/ant.gif
new file mode 100644
index 000000000..6da365c94
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/icons/ant.gif
Binary files differ
diff --git a/ant/org.eclipse.ant.tests.ui/plugin.properties b/ant/org.eclipse.ant.tests.ui/plugin.properties
new file mode 100644
index 000000000..4a08e075d
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/plugin.properties
@@ -0,0 +1,13 @@
+###############################################################################
+# Copyright (c) 2003, 2005 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+pluginName=Ant UI Test Plugin
+providerName=Eclipse.org
diff --git a/ant/org.eclipse.ant.tests.ui/plugin.xml b/ant/org.eclipse.ant.tests.ui/plugin.xml
new file mode 100644
index 000000000..d41961f86
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/plugin.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?> <!--
+ Copyright (c) 2005, 2008 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+
+<plugin>
+
+
+ <extension
+ point="org.eclipse.debug.ui.consoleLineTrackers">
+ <consoleLineTracker
+ class="org.eclipse.ant.tests.ui.testplugin.ConsoleLineTracker"
+ processType="org.eclipse.ant.ui.antProcess"
+ id="org.eclipse.ant.tests.ui.testplugin.ConsoleLineTracker">
+ </consoleLineTracker>
+ </extension>
+
+ <extension
+ point="org.eclipse.ant.core.extraClasspathEntries">
+ <extraClasspathEntry
+ library="lib/antUITestsSupport.jar"
+ eclipseRuntime="false">
+ </extraClasspathEntry>
+ </extension>
+
+ <extension point="org.eclipse.ant.core.antTasks">
+ <antTask
+ name="coolUITask"
+ class="org.eclipse.ant.tests.ui.support.tasks.AntTestTask2"
+ library="lib/antUITestsSupport.jar"
+ eclipseRuntime="false">
+ </antTask>
+ <antTask
+ name="coolUITask"
+ uri="testing"
+ class="org.eclipse.ant.tests.ui.support.tasks.AntTestTask2"
+ library="lib/antUITestsSupport.jar"
+ eclipseRuntime="false">
+ </antTask>
+ </extension>
+
+ <extension point="org.eclipse.ant.core.antTypes">
+ <antType
+ name="coolUIType"
+ class="org.eclipse.ant.tests.ui.support.types.AntTestPath"
+ library="lib/antUITestsSupport.jar"
+ eclipseRuntime="false">
+ </antType>
+ </extension>
+
+ <extension
+ point="org.eclipse.ant.core.antProperties">
+ <antProperty
+ name="property.ui.testing"
+ value="true">
+ </antProperty>
+ <antProperty
+ name="property.ui.testing2"
+ value="hey"
+ eclipseRuntime="false">
+ </antProperty>
+ </extension>
+</plugin>
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java
new file mode 100644
index 000000000..e6cc8391f
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AbstractAntUITest.java
@@ -0,0 +1,483 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.testplugin;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import junit.framework.TestCase;
+
+import org.eclipse.ant.internal.ui.AntUIPlugin;
+import org.eclipse.ant.internal.ui.IAntUIPreferenceConstants;
+import org.eclipse.ant.internal.ui.model.AntModel;
+import org.eclipse.ant.tests.ui.editor.support.TestLocationProvider;
+import org.eclipse.ant.tests.ui.editor.support.TestProblemRequestor;
+import org.eclipse.core.externaltools.internal.IExternalToolConstants;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.DebugEvent;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.core.model.IProcess;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.BadPositionCategoryException;
+import org.eclipse.jface.text.Document;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IDocumentPartitioner;
+import org.eclipse.jface.text.ITypedRegion;
+import org.eclipse.jface.text.Position;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.ui.console.IHyperlink;
+import org.eclipse.ui.internal.console.ConsoleHyperlinkPosition;
+import org.eclipse.ui.internal.console.IOConsolePartition;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * Abstract Ant UI test class
+ */
+public abstract class AbstractAntUITest extends TestCase {
+
+ public static String ANT_EDITOR_ID= "org.eclipse.ant.ui.internal.editor.AntEditor";
+
+ private IDocument currentDocument;
+
+ /**
+ * Constructor
+ * @param name
+ */
+ public AbstractAntUITest(String name) {
+ super(name);
+ }
+
+ /**
+ * Returns the {@link IFile} for the given build file name
+ * @param buildFileName
+ * @return the associated {@link IFile} for the given build file name
+ */
+ protected IFile getIFile(String buildFileName) {
+ return getProject().getFolder("buildfiles").getFile(buildFileName);
+ }
+
+ /**
+ * Returns the {@link File} for the given build file name
+ * @param buildFileName
+ * @return the {@link File} for the given build file name
+ */
+ protected File getBuildFile(String buildFileName) {
+ IFile file = getIFile(buildFileName);
+ assertTrue("Could not find build file named: " + buildFileName, file.exists());
+ return file.getLocation().toFile();
+ }
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ assertProject();
+ }
+
+ /**
+ * Asserts that the testing project has been setup in the test workspace
+ * @throws Exception
+ *
+ * @since 3.5
+ */
+ public static void assertProject() throws Exception {
+ IProject pro = ResourcesPlugin.getWorkspace().getRoot().getProject(ProjectHelper.PROJECT_NAME);
+ if (!pro.exists()) {
+ // create project and import build files and support files
+ IProject project = ProjectHelper.createProject(ProjectHelper.PROJECT_NAME);
+ IFolder folder = ProjectHelper.addFolder(project, "buildfiles");
+ ProjectHelper.addFolder(project, "launchConfigurations");
+ File root = AntUITestPlugin.getDefault().getFileInPlugin(ProjectHelper.TEST_BUILDFILES_DIR);
+ ProjectHelper.importFilesFromDirectory(root, folder.getFullPath(), null);
+
+ ProjectHelper.createLaunchConfigurationForBoth("echoing");
+ ProjectHelper.createLaunchConfigurationForBoth("102282");
+ ProjectHelper.createLaunchConfigurationForBoth("74840");
+ ProjectHelper.createLaunchConfigurationForBoth("failingTarget");
+ ProjectHelper.createLaunchConfiguration("build");
+ ProjectHelper.createLaunchConfiguration("bad");
+ ProjectHelper.createLaunchConfiguration("importRequiringUserProp");
+ ProjectHelper.createLaunchConfigurationForSeparateVM("echoPropertiesSepVM", "echoProperties");
+ ProjectHelper.createLaunchConfigurationForSeparateVM("extensionPointSepVM", null);
+ ProjectHelper.createLaunchConfigurationForSeparateVM("extensionPointTaskSepVM", null);
+ ProjectHelper.createLaunchConfigurationForSeparateVM("extensionPointTypeSepVM", null);
+ ProjectHelper.createLaunchConfigurationForSeparateVM("input", null);
+ ProjectHelper.createLaunchConfigurationForSeparateVM("environmentVar", null);
+
+ ProjectHelper.createLaunchConfigurationForBoth("breakpoints");
+ ProjectHelper.createLaunchConfigurationForBoth("debugAntCall");
+ ProjectHelper.createLaunchConfigurationForBoth("96022");
+ ProjectHelper.createLaunchConfigurationForBoth("macrodef");
+ ProjectHelper.createLaunchConfigurationForBoth("85769");
+
+ ProjectHelper.createLaunchConfiguration("big", ProjectHelper.PROJECT_NAME + "/buildfiles/performance/build.xml");
+
+ //do not show the Ant build failed error dialog
+ AntUIPlugin.getDefault().getPreferenceStore().setValue(IAntUIPreferenceConstants.ANT_ERROR_DIALOG, false);
+ }
+ }
+
+ /**
+ * Returns the 'AntUITests' project.
+ *
+ * @return the test project
+ */
+ protected static IProject getProject() {
+ return ResourcesPlugin.getWorkspace().getRoot().getProject(ProjectHelper.PROJECT_NAME);
+ }
+
+ /**
+ * Returns the underlying {@link IDocument} for the given file name
+ * @param fileName
+ * @return the underlying {@link IDocument} for the given file name
+ */
+ protected IDocument getDocument(String fileName) {
+ File file = getBuildFile(fileName);
+ InputStream in;
+ try {
+ in = new FileInputStream(file);
+ } catch (FileNotFoundException e) {
+ return null;
+ }
+ String initialContent= getStreamContentAsString(in);
+ return new Document(initialContent);
+ }
+
+ /**
+ * Returns the contents of the given {@link InputStream} as a {@link String}
+ * @param inputStream
+ * @return the {@link InputStream} as a {@link String}
+ */
+ protected String getStreamContentAsString(InputStream inputStream) {
+ InputStreamReader reader;
+ try {
+ reader = new InputStreamReader(inputStream, ResourcesPlugin.getEncoding());
+ } catch (UnsupportedEncodingException e) {
+ AntUIPlugin.log(e);
+ return ""; //$NON-NLS-1$
+ }
+ BufferedReader tempBufferedReader = new BufferedReader(reader);
+
+ return getReaderContentAsString(tempBufferedReader);
+ }
+
+ /**
+ * Returns the contents of the given {@link BufferedReader} as a {@link String}
+ * @param bufferedReader
+ * @return the contents of the given {@link BufferedReader} as a {@link String}
+ */
+ protected String getReaderContentAsStringNew(BufferedReader bufferedReader) {
+ StringBuffer result = new StringBuffer();
+ try {
+ char[] readBuffer= new char[2048];
+ int n= bufferedReader.read(readBuffer);
+ while (n > 0) {
+ result.append(readBuffer, 0, n);
+ n= bufferedReader.read(readBuffer);
+ }
+ } catch (IOException e) {
+ AntUIPlugin.log(e);
+ return null;
+ }
+
+ return result.toString();
+ }
+
+ /**
+ * Returns the contents of the given {@link BufferedReader} as a {@link String}
+ * @param bufferedReader
+ * @return the contents of the given {@link BufferedReader} as a {@link String}
+ */
+ protected String getReaderContentAsString(BufferedReader bufferedReader) {
+ StringBuffer result = new StringBuffer();
+ try {
+ String line= bufferedReader.readLine();
+
+ while(line != null) {
+ if(result.length() != 0) {
+ result.append(System.getProperty("line.separator")); //$NON-NLS-1$
+ }
+ result.append(line);
+ line = bufferedReader.readLine();
+ }
+ } catch (IOException e) {
+ AntUIPlugin.log(e);
+ return null;
+ }
+
+ return result.toString();
+ }
+
+ /**
+ * Returns the {@link AntModel} for the given file name
+ * @param fileName
+ * @return the {@link AntModel} for the given file name
+ */
+ protected AntModel getAntModel(String fileName) {
+ currentDocument= getDocument(fileName);
+ AntModel model= new AntModel(currentDocument, new TestProblemRequestor(), new TestLocationProvider(getBuildFile(fileName)));
+ model.reconcile();
+ return model;
+ }
+
+ /**
+ * @return the current {@link IDocument} context
+ */
+ public IDocument getCurrentDocument() {
+ return currentDocument;
+ }
+
+ /**
+ * Allows the current {@link IDocument} context to be set. This method accepts <code>null</code>
+ * @param currentDocument
+ */
+ public void setCurrentDocument(IDocument currentDocument) {
+ this.currentDocument = currentDocument;
+ }
+
+ /**
+ * Launches the Ant build with the build file name (no extension).
+ *
+ * @param buildFileName the ant build file name
+ */
+ protected void launch(String buildFileName) throws CoreException {
+ ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
+ assertNotNull("Could not locate launch configuration for " + buildFileName, config);
+ launchAndTerminate(config, 20000);
+ }
+
+ /**
+ * Launches the Ant build with the build file name (no extension).
+ *
+ * @param buildFileName the build file
+ * @param arguments the ant arguments
+ */
+ protected void launch(String buildFileName, String arguments) throws CoreException {
+ ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
+ assertNotNull("Could not locate launch configuration for " + buildFileName, config);
+ ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
+ copy.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, arguments);
+ launchAndTerminate(copy, 20000);
+ }
+
+ /**
+ * Launches the Ant build in debug output mode with the build file name (no extension).
+ *
+ * @param mainTypeName the program to launch
+ * @return thread in which the first suspend event occurred
+ */
+ protected void launchWithDebug(String buildFileName) throws CoreException {
+ ILaunchConfiguration config = getLaunchConfiguration(buildFileName);
+ assertNotNull("Could not locate launch configuration for " + buildFileName, config);
+ ILaunchConfigurationWorkingCopy copy= config.getWorkingCopy();
+ copy.setAttribute(IExternalToolConstants.ATTR_TOOL_ARGUMENTS, "-debug");
+ launchAndTerminate(copy, 10000);
+ }
+
+ /**
+ * Returns the launch configuration for the given build file
+ *
+ * @param buildFileName build file to launch
+ * @see ProjectCreationDecorator
+ */
+ protected ILaunchConfiguration getLaunchConfiguration(String buildFileName) {
+ IFile file = getJavaProject().getProject().getFolder("launchConfigurations").getFile(buildFileName + ".launch");
+ ILaunchConfiguration config = getLaunchManager().getLaunchConfiguration(file);
+ assertTrue("Could not find launch configuration for " + buildFileName, config.exists());
+ return config;
+ }
+
+ /**
+ * Returns the content of the specified file as <code>String</code>.
+ */
+ protected String getFileContentAsString(File aFile) throws FileNotFoundException {
+ InputStream stream = new FileInputStream(aFile);
+ InputStreamReader reader = new InputStreamReader(stream);
+ BufferedReader bufferedReader = new BufferedReader(reader);
+
+ return getReaderContentAsString(bufferedReader);
+ }
+
+ /**
+ * @return a new SAX parser instrance
+ */
+ protected SAXParser getSAXParser() {
+ SAXParser parser = null;
+ try {
+ parser = SAXParserFactory.newInstance().newSAXParser();
+ } catch (ParserConfigurationException e) {
+ AntUIPlugin.log(e);
+ } catch (SAXException e) {
+ AntUIPlugin.log(e);
+ }
+ return parser;
+ }
+
+
+ /**
+ * Parses the given input stream with the given parser using the given handler
+ * @param stream
+ * @param parser
+ * @param handler
+ * @param editedFile
+ */
+ protected void parse(InputStream stream, SAXParser parser, DefaultHandler handler, File editedFile) {
+ InputSource inputSource= new InputSource(stream);
+ if (editedFile != null) {
+ //needed for resolving relative external entities
+ inputSource.setSystemId(editedFile.getAbsolutePath());
+ }
+
+ try {
+ parser.parse(inputSource, handler);
+ } catch (SAXException e) {
+ } catch (IOException e) {
+ }
+ }
+
+ /**
+ * Returns the launch manager
+ *
+ * @return launch manager
+ */
+ public static ILaunchManager getLaunchManager() {
+ return DebugPlugin.getDefault().getLaunchManager();
+ }
+
+ /**
+ * Returns the 'AntUITests' project.
+ *
+ * @return the test project
+ */
+ public static IJavaProject getJavaProject() {
+ return JavaCore.create( getProject());
+ }
+
+ /**
+ * Launches the given configuration and waits for the terminated event or the length of the given timeout,
+ * whichever comes first
+ * @param config
+ * @param timeout
+ * @throws CoreException
+ */
+ protected void launchAndTerminate(ILaunchConfiguration config, int timeout) throws CoreException {
+ DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.TERMINATE, IProcess.class);
+ waiter.setTimeout(timeout);
+
+ Object terminatee = launchAndWait(config, waiter);
+ assertNotNull("Program did not terminate.", terminatee);
+ assertTrue("terminatee is not an IProcess", terminatee instanceof IProcess);
+ IProcess process = (IProcess) terminatee;
+ boolean terminated = process.isTerminated();
+ assertTrue("process is not terminated", terminated);
+ }
+
+ /**
+ * Launches the given configuration and waits for an event. Returns the
+ * source of the event. If the event is not received, the launch is
+ * terminated and an exception is thrown.
+ *
+ * @param configuration the configuration to launch
+ * @param waiter the event waiter to use
+ * @return Object the source of the event
+ * @exception Exception if the event is never received.
+ */
+ protected Object launchAndWait(ILaunchConfiguration configuration, DebugEventWaiter waiter) throws CoreException {
+ ILaunch launch = configuration.launch(ILaunchManager.RUN_MODE, null);
+ Object suspendee= waiter.waitForEvent();
+ if (suspendee == null) {
+ try {
+ launch.terminate();
+ } catch (CoreException e) {
+ e.printStackTrace();
+ fail("Program did not suspend, and unable to terminate launch.");
+ }
+ }
+ assertNotNull("Program did not suspend, launch terminated.", suspendee);
+ boolean terminated = launch.isTerminated();
+ assertTrue("launch did not terminate", terminated);
+ if (terminated && !ConsoleLineTracker.isClosed()) {
+ ConsoleLineTracker.waitForConsole();
+ }
+ assertTrue("Console is not closed", ConsoleLineTracker.isClosed());
+ return suspendee;
+ }
+
+ /**
+ * Returns the {@link IHyperlink} at the given offset on the given document,
+ * or <code>null</code> if there is no {@link IHyperlink} at that offset on the document.
+ * @param offset
+ * @param doc
+ * @return the {@link IHyperlink} at the given offset on the given document or <code>null</code>
+ */
+ protected IHyperlink getHyperlink(int offset, IDocument doc) {
+ if (offset >= 0 && doc != null) {
+ Position[] positions = null;
+ try {
+ positions = doc.getPositions(ConsoleHyperlinkPosition.HYPER_LINK_CATEGORY);
+ } catch (BadPositionCategoryException ex) {
+ // no links have been added
+ return null;
+ }
+ for (int i = 0; i < positions.length; i++) {
+ Position position = positions[i];
+ if (offset >= position.getOffset() && offset <= (position.getOffset() + position.getLength())) {
+ return ((ConsoleHyperlinkPosition)position).getHyperLink();
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the {@link Color} at the given offset on the given document,
+ * or <code>null</code> if there is no {@link Color} at that offset on the document.
+ * @param offset
+ * @param doc
+ * @return the {@link Color} at the given offset on the given document or <code>null</code>
+ */
+ protected Color getColorAtOffset(int offset, IDocument document) throws BadLocationException {
+ if (document != null) {
+ IDocumentPartitioner partitioner = document.getDocumentPartitioner();
+ if (partitioner != null) {
+ ITypedRegion[] regions= partitioner.computePartitioning(offset, document.getLineInformationOfOffset(offset).getLength());
+ if (regions.length > 0) {
+ IOConsolePartition partition = (IOConsolePartition)regions[0];
+ return partition.getColor();
+ }
+ }
+ }
+ return null;
+ }
+} \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUIPerformanceTests.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUIPerformanceTests.java
new file mode 100644
index 000000000..3a9da6423
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUIPerformanceTests.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui.testplugin;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.eclipse.ant.tests.ui.editor.performance.OpenAntEditorTest;
+import org.eclipse.ant.tests.ui.performance.SeparateVMTests;
+
+/**
+ * Performance Test suite for the Ant UI.
+ * All of the tests in this suite rely on the setup that occurs in the
+ * ProjectCreationDecorator suite. It must always run before any of the other
+ * test suites.
+ */
+public class AntUIPerformanceTests extends TestSuite {
+
+ public static Test suite() {
+
+ TestSuite suite = new AntUIPerformanceTests();
+ suite.setName("Ant UI Performance Unit Tests");
+ suite.addTest(new TestSuite(OpenAntEditorTest.class));
+ suite.addTest(new TestSuite(SeparateVMTests.class));
+ //suite.addTest(new TestSuite(NonInitialTypingTest.class));
+ //suite.addTest(new TestSuite(OpenLaunchConfigurationDialogTests.class));
+ return suite;
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITestPlugin.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITestPlugin.java
new file mode 100644
index 000000000..7f42975ce
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/AntUITestPlugin.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.testplugin;
+
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.IWorkspaceDescription;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.Bundle;
+
+
+public class AntUITestPlugin extends AbstractUIPlugin {
+
+ private static AntUITestPlugin deflt;
+
+ public AntUITestPlugin() {
+ super();
+ deflt= this;
+ }
+
+ public static AntUITestPlugin getDefault() {
+ return deflt;
+ }
+
+ public static IWorkspace getWorkspace() {
+ return ResourcesPlugin.getWorkspace();
+ }
+
+ public static void enableAutobuild(boolean enable) throws CoreException {
+ // disable auto build
+ IWorkspace workspace= AntUITestPlugin.getWorkspace();
+ IWorkspaceDescription desc= workspace.getDescription();
+ desc.setAutoBuilding(enable);
+ workspace.setDescription(desc);
+ }
+
+ public File getFileInPlugin(IPath path) {
+ try {
+ Bundle bundle = getDefault().getBundle();
+ URL installURL= new URL(bundle.getEntry("/"), path.toString());
+ URL localURL= FileLocator.toFileURL(installURL);
+ return new File(localURL.getFile());
+ } catch (IOException e) {
+ return null;
+ }
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ConsoleLineTracker.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ConsoleLineTracker.java
new file mode 100644
index 000000000..231cfc445
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ConsoleLineTracker.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.testplugin;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.debug.ui.console.IConsole;
+import org.eclipse.debug.ui.console.IConsoleLineTrackerExtension;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+
+/**
+ * Simple console line tracker extension point that collects the lines
+ * appended to the console.
+ */
+public class ConsoleLineTracker implements IConsoleLineTrackerExtension {
+
+ private static IConsole console;
+ private static List lines= new ArrayList();
+
+ private static boolean consoleClosed= true;
+
+ /**
+ * @see org.eclipse.debug.ui.console.IConsoleLineTracker#dispose()
+ */
+ public void dispose() {
+ }
+
+ /**
+ * @see org.eclipse.debug.ui.console.IConsoleLineTracker#init(org.eclipse.debug.ui.console.IConsole)
+ */
+ public void init(IConsole c) {
+ synchronized(lines) {
+ ConsoleLineTracker.console= c;
+ lines= new ArrayList();
+ consoleClosed= false;
+ }
+ }
+
+ /**
+ * @see org.eclipse.debug.ui.console.IConsoleLineTracker#lineAppended(org.eclipse.jface.text.IRegion)
+ */
+ public void lineAppended(IRegion line) {
+ lines.add(line);
+ }
+
+ public static int getNumberOfMessages() {
+ return lines.size();
+ }
+
+ public static String getMessage(int index) {
+ if (index < lines.size()){
+ IRegion lineRegion= (IRegion)lines.get(index);
+ try {
+ return console.getDocument().get(lineRegion.getOffset(), lineRegion.getLength());
+ } catch (BadLocationException e) {
+ return null;
+ }
+ }
+ return null;
+ }
+
+ public static List getAllMessages() {
+ List all= new ArrayList(lines.size());
+ for (int i = 0; i < lines.size(); i++) {
+ IRegion lineRegion= (IRegion)lines.get(i);
+ try {
+ all.add(console.getDocument().get(lineRegion.getOffset(), lineRegion.getLength()));
+ } catch (BadLocationException e) {
+ continue;
+ }
+ }
+ return all;
+ }
+
+ public static IDocument getDocument() {
+ return console.getDocument();
+ }
+
+ public static void waitForConsole() {
+ synchronized (lines) {
+ if (consoleClosed) {
+ return;
+ }
+ try {
+ lines.wait(20000);
+ } catch (InterruptedException ie) {
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.ui.console.IConsoleLineTrackerExtension#consoleClosed()
+ */
+ public void consoleClosed() {
+ synchronized (lines) {
+ consoleClosed= true;
+ lines.notifyAll();
+ }
+ }
+
+ public static boolean isClosed() {
+ synchronized (lines) {
+ return consoleClosed;
+ }
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugElementKindEventWaiter.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugElementKindEventWaiter.java
new file mode 100644
index 000000000..094a32fab
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugElementKindEventWaiter.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.testplugin;
+
+import org.eclipse.debug.core.DebugEvent;
+
+/**
+ * Waits for a type of event on a kind of element. Compare this to SpecificDebugElementEventWaiter which is
+ * used to wait for a type of event on a specific debug element object.
+ */
+
+public class DebugElementKindEventWaiter extends DebugEventWaiter {
+
+ protected Class fElementClass;
+
+ public DebugElementKindEventWaiter(int eventKind, Class elementClass) {
+ super(eventKind);
+ fElementClass = elementClass;
+ }
+
+ public boolean accept(DebugEvent event) {
+ Object o = event.getSource();
+ return super.accept(event) && fElementClass.isInstance(o);
+ }
+
+}
+
+
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugEventWaiter.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugEventWaiter.java
new file mode 100644
index 000000000..0cd2a6862
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/DebugEventWaiter.java
@@ -0,0 +1,170 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.testplugin;
+
+import org.eclipse.debug.core.DebugEvent;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.IDebugEventSetListener;
+
+/**
+ * The <code>DebugEventWaiter</code> is
+ * to wait for a specific kind of debug event.
+ * <p>
+ * When a <code>DebugEventWaiter</code> is created, it
+ * registers itself with the <code>DebugPlugin</code> as
+ * an <code>IDebugEventSetListener</code>.
+ * <p>
+ * NOTE: <code>DebugEventWaiter</code> objects are intended for
+ * one time use only!
+ */
+public class DebugEventWaiter implements IDebugEventSetListener {
+ /**
+ * The kind of event the waiter is waiting for
+ */
+ protected int fEventType;
+
+ /**
+ * The number of milliseconds the waiter will wait before timing out.
+ */
+ protected long fTimeout;
+
+ /**
+ * The <code>IDebugModelManager</code> this waiter is listening to.
+ */
+ protected DebugPlugin fDebugPlugin;
+
+ /**
+ * The <code>DebugEvent</code> received.
+ */
+ protected DebugEvent fEvent;
+
+ /**
+ * The event set that was accepted
+ */
+ protected DebugEvent[] fEventSet;
+
+ /**
+ * The default timeout value if none is given (5000).
+ */
+ public static final long DEFAULT_TIMEOUT= 5000;
+
+ /**
+ * Creates a new <code>DebugEventWaiter</code> which
+ * waits for events of a kind <code>eventType</code>.
+ * The wait method will wait the default timeout value.
+ */
+ public DebugEventWaiter(int eventType) {
+ fDebugPlugin= DebugPlugin.getDefault();
+ fEventType= eventType;
+ fTimeout= DEFAULT_TIMEOUT;
+
+ fDebugPlugin.addDebugEventListener(this);
+ }
+
+ /**
+ * Answers true if the <code>DebugEvent</code> is acceptable.
+ */
+ public boolean accept(DebugEvent event) {
+ return event.getKind() == fEventType && event.getDetail() != DebugEvent.EVALUATION_IMPLICIT;
+ }
+ /**
+ * Answers the event name associated with the given flag.
+ */
+ public String getEventName(int flag) {
+ switch (flag) {
+ case DebugEvent.CREATE :
+ return "Create";
+ case DebugEvent.TERMINATE :
+ return "Terminate";
+ case DebugEvent.RESUME :
+ return "Resume";
+ case DebugEvent.SUSPEND :
+ return "Suspend";
+ default :
+ return "UNKNOWN";
+ }
+ }
+
+ /**
+ * Handles debug events.
+ *
+ * @see IDebugEventListener
+ * @see #accept(DebugEvent)
+ */
+ public synchronized void handleDebugEvents(DebugEvent[] events) {
+ //printReceived(events);
+ for (int i = 0; i < events.length; i++) {
+ if (accept(events[i])) {
+ fEvent= events[i];
+ fEventSet = events;
+ unregister();
+ notifyAll();
+ return;
+ }
+ }
+ }
+
+ /**
+ * Prints a message indicating which event was received.
+ */
+ protected void printReceived(DebugEvent[] events) {
+ for (int i = 0; i < events.length; i++) {
+ System.out.println(this +" got " + events[i]);
+ }
+ }
+
+ /**
+ * Sets the number of milliseconds to wait for this callback
+ */
+ public void setTimeout(long milliseconds) {
+ fTimeout= milliseconds;
+ }
+
+ /**
+ * Unregisters this waiter as a listener
+ */
+ public void unregister() {
+ fDebugPlugin.removeDebugEventListener(this);
+ }
+
+ /**
+ * Returns the source of the accepted event, or <code>null</code>
+ * if no event was accepted.
+ */
+ public synchronized Object waitForEvent() {
+ if (fEvent == null) {
+ try {
+ wait(fTimeout);
+ } catch (InterruptedException ie) {
+ System.err.println("Interrupted waiting for event");
+ }
+ }
+ unregister();
+ if (fEvent == null)
+ return null;
+ return fEvent.getSource();
+ }
+
+ /**
+ * Returns the accepted event, if any.
+ */
+ public DebugEvent getEvent() {
+ return fEvent;
+ }
+
+ /**
+ * Returns the accepted event set, if any.
+ */
+ public DebugEvent[] getEventSet() {
+ return fEventSet;
+ }
+}
+
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectCreationDecorator.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectCreationDecorator.java
new file mode 100644
index 000000000..cc4a2912a
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectCreationDecorator.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.testplugin;
+
+
+
+/**
+ * Utility class
+ */
+public class ProjectCreationDecorator {
+
+ private static boolean fgIsJ2SE15Compatible = false ;
+
+ static {
+ String version = System.getProperty("java.specification.version");
+ if (version != null) {
+ String[] nums = version.split("\\.");
+ if (nums.length == 2) {
+ try {
+ int major = Integer.parseInt(nums[0]);
+ int minor = Integer.parseInt(nums[1]);
+ if (major >= 1) {
+ if (minor >= 5) {
+ fgIsJ2SE15Compatible = true;
+ }
+ }
+ } catch (NumberFormatException e) {
+ }
+ }
+ }
+ };
+
+ /**
+ * @return if the system property "java.specification.version" is 1.5 or greater
+ */
+ public static boolean isJ2SE15Compatible() {
+ return fgIsJ2SE15Compatible;
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectHelper.java b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectHelper.java
new file mode 100644
index 000000000..2f0c7bac7
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test plugin/org/eclipse/ant/tests/ui/testplugin/ProjectHelper.java
@@ -0,0 +1,229 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.testplugin;
+
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.ant.internal.ui.IAntUIConstants;
+import org.eclipse.ant.launching.IAntLaunchConstants;
+import org.eclipse.core.externaltools.internal.IExternalToolConstants;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationType;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.ui.dialogs.IOverwriteQuery;
+import org.eclipse.ui.wizards.datatransfer.FileSystemStructureProvider;
+import org.eclipse.ui.wizards.datatransfer.IImportStructureProvider;
+import org.eclipse.ui.wizards.datatransfer.ImportOperation;
+
+/**
+ * Helper methods to set up an IProject.
+ */
+public class ProjectHelper {
+
+ public static final IPath TEST_BUILDFILES_DIR= new Path("testbuildfiles");
+ public static final IPath TEST_RESOURCES_DIR= new Path("testresources");
+ public static final IPath TEST_LIB_DIR= new Path("testlib");
+
+ public static final String PROJECT_NAME= "Ant UI Tests";
+
+ /**
+ * Creates a IProject.
+ */
+ public static IProject createProject(String projectName) throws CoreException {
+ IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
+ IProject project= root.getProject(projectName);
+ if (!project.exists()) {
+ project.create(null);
+ } else {
+ project.refreshLocal(IResource.DEPTH_INFINITE, null);
+ }
+
+ if (!project.isOpen()) {
+ project.open(null);
+ }
+
+ if (!project.hasNature(JavaCore.NATURE_ID)) {
+ addNatureToProject(project, JavaCore.NATURE_ID, null);
+ }
+
+ return project;
+ }
+
+ private static void addNatureToProject(IProject proj, String natureId, IProgressMonitor monitor) throws CoreException {
+ IProjectDescription description = proj.getDescription();
+ String[] prevNatures= description.getNatureIds();
+ String[] newNatures= new String[prevNatures.length + 1];
+ System.arraycopy(prevNatures, 0, newNatures, 0, prevNatures.length);
+ newNatures[prevNatures.length]= natureId;
+ description.setNatureIds(newNatures);
+ proj.setDescription(description, monitor);
+ }
+
+ /**
+ * Removes an IProject.
+ */
+ public static void delete(IProject project) throws CoreException {
+ project.delete(true, true, null);
+ }
+
+
+ /**
+ * Adds a folder to an IProject.
+ */
+ public static IFolder addFolder(IProject project, String containerName) throws CoreException {
+
+ IFolder folder= project.getFolder(containerName);
+ if (!folder.exists()) {
+ folder.create(false, true, null);
+ }
+
+ return folder;
+
+ }
+
+ public static void importFilesFromDirectory(File rootDir, IPath destPath, IProgressMonitor monitor) throws InvocationTargetException, IOException {
+ IImportStructureProvider structureProvider = FileSystemStructureProvider.INSTANCE;
+ List files = new ArrayList(100);
+ addFiles(rootDir, files);
+ try {
+ ImportOperation op= new ImportOperation(destPath, rootDir, structureProvider, new ImportOverwriteQuery(), files);
+ op.setCreateContainerStructure(false);
+ op.run(monitor);
+ } catch (InterruptedException e) {
+ // should not happen
+ }
+ }
+
+ private static void addFiles(File dir, List collection) throws IOException {
+ File[] files = dir.listFiles();
+ List subDirs = new ArrayList(2);
+ for (int i = 0; i < files.length; i++) {
+ if (files[i].isFile()) {
+ collection.add(files[i]);
+ } else if (files[i].isDirectory()) {
+ subDirs.add(files[i]);
+ }
+ }
+ Iterator iter = subDirs.iterator();
+ while (iter.hasNext()) {
+ File subDir = (File)iter.next();
+ addFiles(subDir, collection);
+ }
+ }
+
+ private static class ImportOverwriteQuery implements IOverwriteQuery {
+ public String queryOverwrite(String file) {
+ return ALL;
+ }
+ }
+
+ /**
+ * Creates two launch configurations one standard one and one for a separate VM
+ * @param launchConfigName
+ * @throws Exception
+ *
+ * @since 3.5
+ */
+ public static void createLaunchConfigurationForBoth(String launchConfigName) throws Exception {
+ ProjectHelper.createLaunchConfiguration(launchConfigName);
+ ProjectHelper.createLaunchConfigurationForSeparateVM(launchConfigName + "SepVM", launchConfigName);
+ }
+
+ /**
+ * Creates a shared launch configuration for launching Ant in a separate VM with the given
+ * name.
+ *
+ * @since 3.5
+ */
+ public static void createLaunchConfigurationForSeparateVM(String launchConfigName, String buildFileName) throws Exception {
+ String bf = buildFileName;
+ ILaunchConfigurationType type = AbstractAntUITest.getLaunchManager().getLaunchConfigurationType(IAntLaunchConstants.ID_ANT_LAUNCH_CONFIGURATION_TYPE);
+ ILaunchConfigurationWorkingCopy config = type.newInstance(AbstractAntUITest.getJavaProject().getProject().getFolder("launchConfigurations"), launchConfigName);
+
+ config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "org.eclipse.ant.internal.launching.remote.InternalAntRunner"); //$NON-NLS-1$
+ config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH_PROVIDER, "org.eclipse.ant.ui.AntClasspathProvider"); //$NON-NLS-1$
+ config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, AbstractAntUITest.getJavaProject().getElementName());
+ if (bf == null) {
+ bf= launchConfigName;
+ }
+ config.setAttribute(IExternalToolConstants.ATTR_LOCATION, "${workspace_loc:/" + PROJECT_NAME + "/buildfiles/" + bf + ".xml}");
+
+ config.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, true);
+ config.setAttribute(DebugPlugin.ATTR_PROCESS_FACTORY_ID, IAntUIConstants.REMOTE_ANT_PROCESS_FACTORY_ID);
+
+ ProjectHelper.setVM(config);
+
+ config.doSave();
+ }
+
+ /**
+ * Sets the workspace default VM on the given working copy
+ * @param config
+ *
+ * @since 3.5
+ */
+ public static void setVM(ILaunchConfigurationWorkingCopy config) {
+ IVMInstall vm = JavaRuntime.getDefaultVMInstall();
+ String vmName= vm.getName();
+ String vmTypeID= vm.getVMInstallType().getId();
+ config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_NAME, vmName);
+ config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE, vmTypeID);
+ }
+
+ /**
+ * Creates a shared launch configuration for launching Ant in a separate VM with the given
+ * name.
+ */
+ public static void createLaunchConfiguration(String launchConfigName) throws Exception {
+ ProjectHelper.createLaunchConfiguration(launchConfigName, PROJECT_NAME + "/buildfiles/" + launchConfigName + ".xml");
+ }
+
+ /**
+ * Creates a launch configuration with the given name in the given location
+ * @param launchConfigName
+ * @param path
+ * @return the handle to the new launch configuration
+ * @throws CoreException
+ */
+ public static ILaunchConfiguration createLaunchConfiguration(String launchConfigName, String path) throws CoreException {
+ ILaunchConfigurationType type = AbstractAntUITest.getLaunchManager().getLaunchConfigurationType(IAntLaunchConstants.ID_ANT_LAUNCH_CONFIGURATION_TYPE);
+ ILaunchConfigurationWorkingCopy config = type.newInstance(AbstractAntUITest.getJavaProject().getProject().getFolder("launchConfigurations"), launchConfigName);
+
+ config.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, AbstractAntUITest.getJavaProject().getElementName());
+ config.setAttribute(IExternalToolConstants.ATTR_LOCATION, "${workspace_loc:/" + path + "}");
+ config.setAttribute(IDebugUIConstants.ATTR_LAUNCH_IN_BACKGROUND, true);
+
+ config.doSave();
+ return config;
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/inputHandlers/TestSWTInputHandler.java b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/inputHandlers/TestSWTInputHandler.java
new file mode 100644
index 000000000..9e388c41e
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/inputHandlers/TestSWTInputHandler.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui.support.inputHandlers;
+
+
+public class TestSWTInputHandler {//extends SWTInputHandler {
+
+
+// /* (non-Javadoc)
+// * @see org.eclipse.ant.internal.ui.antsupport.inputhandler.SWTInputHandler#open(java.lang.String, java.lang.String, boolean[])
+// */
+// protected void open(String title, String prompt, boolean[] result) {
+// fRequest.setInput("TestSWTInputHandler");
+// result[0]= true;
+// }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask.java b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask.java
new file mode 100644
index 000000000..958b0dc55
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.support.tasks;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.taskdefs.Echo;
+
+
+public class AntTestTask extends Task {
+
+ public AntTestTask() {
+ super();
+ }
+
+ /**
+ * @see org.apache.tools.ant.Task#execute()
+ */
+ public void execute() throws BuildException {
+ Echo echo= new Echo();
+ echo.setProject(getProject());
+ echo.setMessage("Testing Ant in Eclipse with a custom task");
+ echo.execute();
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask2.java b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask2.java
new file mode 100644
index 000000000..42861c11d
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/AntTestTask2.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.support.tasks;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.taskdefs.Echo;
+import org.apache.tools.ant.types.EnumeratedAttribute;
+import org.apache.tools.ant.types.Reference;
+
+
+public class AntTestTask2 extends Task {
+
+ String fMessage= "Default";
+ Reference fRef= null;
+
+ public AntTestTask2() {
+ super();
+ }
+
+ /**
+ * @see org.apache.tools.ant.Task#execute()
+ */
+ public void execute() throws BuildException {
+ Echo echo= new Echo();
+ echo.setProject(getProject());
+ echo.setMessage("Testing Ant in Eclipse with a custom task2: " + fMessage);
+ echo.execute();
+ }
+
+ public void setMessage(Cool attr) {
+ fMessage = attr.getValue();
+ }
+
+ public void setReference(Reference ref) {
+ fRef= ref;
+ }
+
+ /**
+ * Enumerated attribute with the values "cool", "chillin" and "awesome".
+ */
+ public static class Cool extends EnumeratedAttribute {
+ public String[] getValues() {
+ return new String[] {"cool", "chillin", "awesome"};
+ }
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/NestElementTask.java b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/NestElementTask.java
new file mode 100644
index 000000000..f6a71197a
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/tasks/NestElementTask.java
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ant.tests.ui.support.tasks;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Task;
+import org.apache.tools.ant.taskdefs.Echo;
+
+public class NestElementTask extends Task {
+
+ String message= "bar";
+ NestedElement e;
+ public static class NestedElement{
+ Boolean works= Boolean.FALSE;
+ public NestedElement() {
+ }
+
+ public void setWorks(Boolean booleanValue) {
+ works= booleanValue;
+ }
+
+ public boolean works() {
+ return works.booleanValue();
+ }
+ }
+ public void addNestedElement(NestedElement nestedElement) {
+ e= nestedElement;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.tools.ant.Task#execute()
+ */
+ public void execute() throws BuildException {
+ Echo echo= new Echo();
+ echo.setProject(getProject());
+ if (e.works()) {
+ echo.setMessage(message);
+ } else {
+ echo.setMessage("ack");
+ }
+ echo.execute();
+ }
+}
diff --git a/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/types/AntTestPath.java b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/types/AntTestPath.java
new file mode 100644
index 000000000..ecd428c2b
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test support/org/eclipse/ant/tests/ui/support/types/AntTestPath.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ant.tests.ui.support.types;
+
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.types.Path;
+
+public class AntTestPath extends Path {
+
+ String message;
+
+ public AntTestPath(Project project) {
+ super(project);
+ }
+
+ public void setMessage(String message) {
+ this.message= message;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+}
diff --git a/ant/org.eclipse.ant.tests.ui/test.xml b/ant/org.eclipse.ant.tests.ui/test.xml
new file mode 100644
index 000000000..c6f156374
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/test.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+
+<project name="testsuite" default="run" basedir=".">
+ <!-- sets the properties eclipse-home, and library-file -->
+ <!-- The property ${eclipse-home} should be passed into this script -->
+ <!-- Set a meaningful default value for when it is not. -->
+ <property name="eclipse-home" value="${basedir}\..\.."/>
+<property name="plugin-name" value="org.eclipse.ant.tests.ui"/>
+ <property name="library-file"
+ value="${eclipse-home}/plugins/org.eclipse.test/library.xml"/>
+
+ <!-- This target holds all initialization code that needs to be done for -->
+ <!-- all tests that are to be run. Initialization for individual tests -->
+ <!-- should be done within the body of the suite target. -->
+ <target name="init">
+ <tstamp/>
+ <delete>
+ <fileset dir="${eclipse-home}" includes="org*.xml"/>
+ </delete>
+ </target>
+
+ <!-- This target defines the tests that need to be run. -->
+ <target name="suite">
+ <property name="jdt-folder"
+ value="${eclipse-home}/jdt_folder"/>
+ <delete dir="${jdt-folder}" quiet="true"/>
+ <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
+ <property name="data-dir" value="${jdt-folder}"/>
+ <property name="plugin-name" value="${plugin-name}"/>
+ <property name="classname"
+ value="org.eclipse.ant.tests.ui.testplugin.AntUITests"/>
+ </ant>
+ </target>
+
+ <!-- This target defines the performance tests that need to be run. -->
+ <target name="perfsuite">
+ <property name="jdt-folder"
+ value="${eclipse-home}/jdt_folder"/>
+ <delete dir="${jdt-folder}" quiet="true"/>
+ <ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
+ <property name="data-dir" value="${jdt-folder}"/>
+ <property name="plugin-name" value="${plugin-name}"/>
+ <property name="classname"
+ value="org.eclipse.ant.tests.ui.testplugin.AntUIPerformanceTests"/>
+ </ant>
+ </target>
+
+ <!-- This target holds code to cleanup the testing environment after -->
+ <!-- after all of the tests have been run. You can use this target to -->
+ <!-- delete temporary files that have been created. -->
+ <target name="cleanup">
+ </target>
+
+ <!-- This target runs the test suite. Any actions that need to happen -->
+ <!-- after all the tests have been run should go here. -->
+ <target name="run" depends="init,suite,cleanup">
+ <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
+ <property name="includes" value="org*.xml"/>
+ <property name="output-file" value="${plugin-name}.xml"/>
+ </ant>
+ </target>
+
+ <!--This target runs the performance test suites and collects results.-->
+ <target name="performance" depends="init, perfsuite, cleanup">
+ <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
+ <property name="includes" value="org*.xml"/>
+ <property name="output-file" value="${plugin-name}.xml"/>
+ </ant>
+ </target>
+
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/102282.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/102282.xml
new file mode 100644
index 000000000..b2e13ee29
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/102282.xml
@@ -0,0 +1,23 @@
+<!--
+ Copyright (c) 2005, 2006 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+<project name="project" default="default">
+ <target name="default" >
+ <antcall target="antCalled"></antcall>
+ </target>
+ <target name="antCalled">
+ <javac srcdir="src"
+ destdir="dst"
+ classpath="jarfile"
+ debug="on"
+ />
+ </target>
+</project>
+
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/74840.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/74840.xml
new file mode 100644
index 000000000..c61443ff7
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/74840.xml
@@ -0,0 +1,5 @@
+<project name="project" default="default">
+ <target name="default">
+ <echo>${platform.location}</echo>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/85769.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/85769.xml
new file mode 100644
index 000000000..eb6222628
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/85769.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+
+<project name="debugAntCall"
+ default="default">
+
+ <target name="default">
+ <antcall target="call">
+ </antcall>
+ <echo>default</echo>
+ </target>
+
+ <target name="call" depends="pre-call">
+ <echo>call1</echo>
+ <sleep milliseconds="1500" />
+ </target>
+
+ <target name="pre-call">
+ <echo>pre-call1</echo>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/89115.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/89115.xml
new file mode 100644
index 000000000..541648c49
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/89115.xml
@@ -0,0 +1,9 @@
+<project name= "default" default="default">
+ <target description="depends" name="default" depends="depends">
+
+ </target>
+
+ <target name="depends">
+ </target>
+
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/89901.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/89901.xml
new file mode 100644
index 000000000..ac3467c60
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/89901.xml
@@ -0,0 +1,12 @@
+<project name="project" default="default">
+
+ <target name="default" depends="test" description="--> description">
+ <property name="test" value="yo"/>
+ </target>
+
+ <target name="test">
+ <echo>${test}</echo>
+ </target>
+
+</project>
+
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/96022.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/96022.xml
new file mode 100644
index 000000000..ba44aa887
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/96022.xml
@@ -0,0 +1,31 @@
+<project name="debugAntCall"
+ default="default">
+
+ <property name="hey" value="there"/>
+
+ <target name="default">
+ <antcall target="1">
+ </antcall>
+ <echo>default</echo>
+ </target>
+
+ <target name="1" depends="2">
+ <echo>1</echo>
+ <sleep milliseconds="5" />
+ </target>
+
+ <target name="2">
+ <antcall target="3">
+ </antcall>
+ <echo>2</echo>
+ </target>
+
+ <target name="3" depends="4">
+ <echo>3</echo>
+ <sleep milliseconds="5" />
+ </target>
+
+ <target name="4">
+ <echo>4</echo>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/98853.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/98853.xml
new file mode 100644
index 000000000..c9c8fbdc3
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/98853.xml
@@ -0,0 +1,27 @@
+<project name="test"
+ default="run-macro"
+ xmlns:xyz="http://xyz">
+
+ <macrodef name="echo-macro"
+ uri="http://xyz">
+ <attribute name="str" />
+ <element name="some-tasks" />
+ <sequential>
+ <echo>@{str}</echo>
+ <some-tasks/>
+ </sequential>
+ </macrodef>
+
+ <target name="run-macro">
+
+ <xyz:echo-macro str="s">
+
+ </xyz:echo-macro>
+ </target>
+
+ <presetdef name="my-javac" uri="http://xyz">
+ <javac fork="yes"></javac>
+ </presetdef>
+
+
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/antUITestsSupport.jar b/ant/org.eclipse.ant.tests.ui/testbuildfiles/antUITestsSupport.jar
new file mode 100644
index 000000000..054eec8ad
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/antUITestsSupport.jar
Binary files differ
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/bad.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/bad.xml
new file mode 100644
index 000000000..f1c4d51bf
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/bad.xml
@@ -0,0 +1,14 @@
+<project name="Echoing" default="echo1" basedir="..">
+
+ <target name="echo1">
+ <echo messge="echo1"/>
+ </target>
+
+ <target name="echo2">
+ <echo message="echo2"/>
+ </target>
+
+ <target name="echo3" description= "An echo3!">
+ <echo message="echo3"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/badproject.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/badproject.xml
new file mode 100644
index 000000000..60a79a89a
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/badproject.xml
@@ -0,0 +1,4 @@
+<project ndefault="make">
+ <target name="make">
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/breakpoints.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/breakpoints.xml
new file mode 100644
index 000000000..bd6c382f6
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/breakpoints.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+
+<project name="debugEcho" default="default">
+ <target name="default">
+ <echo>1</echo>
+ <echo>2</echo>
+ <property name="ZZZ" value="ZZZ" />
+ <sleep milliseconds="5" />
+ <echo>3</echo>
+ <echo>4</echo>
+ <echo>5</echo>
+ <echo>6</echo>
+ <echo>7</echo>
+ <echo>8</echo>
+ <echo>9</echo>
+ <!--<sleep milliseconds="200" />-->
+ </target>
+
+ <target name="entry1" depends="default">
+ <echo>1</echo>
+ <echo>2</echo>
+ </target>
+
+ <target name="entry2" depends="default">
+ <echo>1</echo>
+ <echo>2</echo>
+ </target>
+
+ <target name="properties">
+ <property name="AAA" value="aaa" />
+ <property name="BBB" value="bbb" />
+ <property name="CCC" value="ccc" />
+ <echo>all done</echo>
+ </target>
+
+ <property name="name" value="value"/>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.Cp1251.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.Cp1251.xml
new file mode 100644
index 000000000..6ff953999
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.Cp1251.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<project name="test" default="init" basedir=".">
+
+ <target name="init">
+ <!-- displays Hello in Russian -->
+ <echo message="Çäðàâñòâóéòå"/>
+ </target>
+
+
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.UTF8.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.UTF8.xml
new file mode 100644
index 000000000..08e4733f1
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.UTF8.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="test" default="init" basedir=".">
+
+ <target name="init">
+ <!-- displays Hello in Russian -->
+ <echo message="ЗдравÑ?твуйте"/>
+ </target>
+
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.xml
new file mode 100644
index 000000000..5cdd64da7
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/build.xml
@@ -0,0 +1,14 @@
+<project name="Echoing" default="echo1" basedir="..">
+
+ <target name="echo1">
+ <echo message="echo1"/>
+ </target>
+
+ <target name="echo2">
+ <echo message="echo2"/>
+ </target>
+
+ <target name="echo3" description= "An echo3!">
+ <echo message="echo3"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.properties b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.properties
new file mode 100644
index 000000000..a7c3ef197
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.properties
@@ -0,0 +1,13 @@
+###############################################################################
+# Copyright (c) 2004, 2005 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+prop1=val1
+prop2 = val2
+importFileName= toBeImported.xml
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.xml
new file mode 100644
index 000000000..9e042ff45
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest1.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="testproject" basedir="." default="main">
+ <property name="propD" value="valD" />
+ <property file="buildtest1.properties" />
+ <property name="propV" value="valV" />
+ <target name="main">
+ <property name="property_in_target" value="val"/>
+ <echo>${</echo>
+ </target>
+ <target name="pretest"></target>
+ <target name="test" depends="">
+ <echo>depends</echo>
+ </target>
+ <target name="test2"></target>
+ <target name="test3"></target>
+ <target name="testIf" if=""></target>
+ <target name="testUnless" unless="prop"></target>
+ <target name="testMoreDepends" depends="pretest, ">
+ <echo message="$"></echo>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest2.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest2.xml
new file mode 100644
index 000000000..01e31c237
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest2.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="testproject" basedir="." default="main">
+ <property name="propD" value="valD" />
+ <property file="buildtest1.properties" />
+ <target name="main" depends="properties"> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest3.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest3.xml
new file mode 100644
index 000000000..7579dc457
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest3.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="testproject" basedir="." default="main">
+ <target name="main" />
+ <target name="pretest" description="description">
+ </target>
+ <target name="test" depends="">
+ <echo>depends</echo>
+ </target>
+ <target name="test2" />
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest4.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest4.xml
new file mode 100644
index 000000000..153b9f1fd
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/buildtest4.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project default="task3">
+ <target name="task" description=""/>
+ <target name="task2">
+ <antcall target=""></antcall>
+ </target>
+ <target name="task3" depends=""/>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/customBoolean.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/customBoolean.xml
new file mode 100644
index 000000000..1dd37a02a
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/customBoolean.xml
@@ -0,0 +1,5 @@
+<project default="defaultTargetName">
+ <target name="defaultTargetName">
+ <eclipse.buildScript recursivegeneration=""/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/debugAntCall.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/debugAntCall.xml
new file mode 100644
index 000000000..868a486ec
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/debugAntCall.xml
@@ -0,0 +1,18 @@
+<project name="debugAntCall"
+ default="default">
+
+ <target name="default">
+ <antcall target="call">
+ </antcall>
+ <echo>default</echo>
+ </target>
+
+ <target name="call" depends="pre-call">
+ <echo>call1</echo>
+ <sleep milliseconds="30" />
+ </target>
+
+ <target name="pre-call">
+ <echo>pre-call1</echo>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/dependencytest.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/dependencytest.xml
new file mode 100644
index 000000000..d26ba5769
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/dependencytest.xml
@@ -0,0 +1,38 @@
+<!-- Ein test case sollte die property proposals in main -->
+<!-- Ueberpruefen, und ob die diversen properties entsprechend -->
+<!-- der dependencies gesetzt sind -->
+
+<project default="main">
+
+ <property name="do_init" value="val"></property>
+
+ <target name="properties">
+ <property name="prop_prop" value="val"></property>
+ <property name="do_not_compile" value="val"></property>
+ <echo message="executing properties"></echo>
+ </target>
+
+ <!-- should never be executed since property is not set -->
+ <target name="additional_properties" if="do_addit_props">
+ <property name="adit_prop" value="val" />
+ <echo message="executing additional_properties"></echo>
+ </target>
+
+ <target name="init" if="doinit" depends="properties,additional_properties">
+ <property name="init_prop" value="val"></property>
+ <echo message="executing init"></echo>
+ </target>
+
+ <!-- should never be executed since property should be set -->
+ <!-- by properties because of dependencies before -->
+ <target name="compile" unless="do_not_compile">
+ <property name="compile_prop" value="val"></property>
+ <echo message="executing compile"></echo>
+ </target>
+
+ <target name="main" depends="init, compile">
+ <property name="main_prop" value="val"></property>
+ <echo message="executing main ${well}"></echo>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/echoProperties.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/echoProperties.xml
new file mode 100644
index 000000000..6473c6567
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/echoProperties.xml
@@ -0,0 +1,6 @@
+<project name="Echoing properties" default="echo1" basedir="..">
+ <target name="echo1">
+ <echo message="about to echo properties"/>
+ <echoproperties/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/echoing.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/echoing.xml
new file mode 100644
index 000000000..97b498461
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/echoing.xml
@@ -0,0 +1,19 @@
+<project name="Echoing" default="echo1" basedir="..">
+
+ <target name="echo1">
+ <echo message="echo1"/>
+ </target>
+
+ <target name="echo2">
+ <echo message="echo2"/>
+ </target>
+
+ <target name="echo3" description= "An echo3!">
+ <echo message="echo3"/>
+ </target>
+
+ <target name="Bug42984">
+ <echo message="user.dir: ${user.dir}"/>
+ </target>
+
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/empty.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/empty.xml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/empty.xml
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/environmentVar.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/environmentVar.xml
new file mode 100644
index 000000000..a88443223
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/environmentVar.xml
@@ -0,0 +1,5 @@
+<project>
+ <property environment="env"/>
+ <echo>${env.ANT_HOME}</echo>
+ <echo>${ant.home}</echo>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointSepVM.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointSepVM.xml
new file mode 100644
index 000000000..2735ed092
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointSepVM.xml
@@ -0,0 +1,14 @@
+<project name="Extension point testing in separate VM"
+ default="Extension Points"
+ basedir="."
+ >
+ <taskdef name="separateVMTask" classname="org.eclipse.ant.tests.ui.support.tasks.AntTestTask">
+ </taskdef>
+ <target name="Extension Points"
+ description= "Ensure that an extra classpath entry designated as not requiring the Eclipse runtime shows up in a separate VM build"
+ >
+ <separateVMTask/>
+ <echo>${property.ui.testing}</echo>
+ <echo>${property.ui.testing2}</echo>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTaskSepVM.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTaskSepVM.xml
new file mode 100644
index 000000000..ec6c6aa3d
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTaskSepVM.xml
@@ -0,0 +1,6 @@
+<project name="Extension Point Task" default="Extension Point Task" basedir=".">
+ <target name="Extension Point Task" description= "Ensure that an extension point defined task is present">
+ <coolUITask message="cool" reference=""/>
+ <my:coolUITask xmlns:my="testing"/>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTypeSepVM.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTypeSepVM.xml
new file mode 100644
index 000000000..bba955e35
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/extensionPointTypeSepVM.xml
@@ -0,0 +1,12 @@
+<project name="Extension Point Type" default="Extension Point Type" basedir=".">
+
+ <coolUIType id="compile.classpath">
+ <fileset dir="lib">
+ <include name="**/*.jar"/>
+ </fileset>
+ </coolUIType>
+
+ <target name="Extension Point Type" description= "Ensure that an extension point defined type is present">
+ <echo message="Ensure that an extension point defined type is present"/>
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/failingTarget.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/failingTarget.xml
new file mode 100644
index 000000000..04418e08a
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/failingTarget.xml
@@ -0,0 +1,9 @@
+<project default="all">
+ <target name="all" depends="fails, echos"/>
+ <target name="fails">
+ <jar jarfile="jar16.jar" basedir="doesNotExist"/>
+ </target>
+ <target name="echos">
+ <echo>Still echo on failure</echo>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_source01.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_source01.xml
new file mode 100644
index 000000000..2732a49a6
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_source01.xml
@@ -0,0 +1,24 @@
+<!--
+ Copyright (c) 2005, 2006 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+<project default="formatTest">
+
+<!-- = = = = = = --><!-- formatTest --><!-- = = = = = = --><target name="formatTest" depends="init" description="--> test target one"><!-- hello world --><greeting /></target>
+
+<!-- - - - - - - -->
+<!-- init -->
+<!-- - - - - - - -->
+<target name="init">
+ <property name="greeting" value="hi" />
+ <presetdef name="greeting"><echo>${greeting}</echo>
+</presetdef>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target01.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target01.xml
new file mode 100644
index 000000000..e985e8540
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target01.xml
@@ -0,0 +1,31 @@
+<!--
+ Copyright (c) 2005, 2006 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+<project default="formatTest">
+
+ <!-- = = = = = = -->
+ <!-- formatTest -->
+ <!-- = = = = = = -->
+ <target name="formatTest" depends="init" description="--> test target one">
+ <!-- hello world -->
+ <greeting />
+ </target>
+
+ <!-- - - - - - - -->
+ <!-- init -->
+ <!-- - - - - - - -->
+ <target name="init">
+ <property name="greeting" value="hi" />
+ <presetdef name="greeting">
+ <echo>${greeting}</echo>
+ </presetdef>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target02.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target02.xml
new file mode 100644
index 000000000..0798275f5
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target02.xml
@@ -0,0 +1,31 @@
+<!--
+ Copyright (c) 2005, 2006 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+<project default="formatTest">
+
+ <!-- = = = = = = -->
+ <!-- formatTest -->
+ <!-- = = = = = = -->
+ <target name="formatTest" depends="init" description="--> test target one">
+ <!-- hello world -->
+ <greeting />
+ </target>
+
+ <!-- - - - - - - -->
+ <!-- init -->
+ <!-- - - - - - - -->
+ <target name="init">
+ <property name="greeting" value="hi" />
+ <presetdef name="greeting">
+ <echo>${greeting}</echo>
+ </presetdef>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target03.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target03.xml
new file mode 100644
index 000000000..9ad51b905
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/formatTest_target03.xml
@@ -0,0 +1,31 @@
+<!--
+ Copyright (c) 2005, 2006 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+<project default="formatTest">
+
+ <!-- = = = = = = -->
+ <!-- formatTest -->
+ <!-- = = = = = = -->
+ <target name="formatTest" depends="init" description="--> test target one">
+ <!-- hello world -->
+ <greeting />
+ </target>
+
+ <!-- - - - - - - -->
+ <!-- init -->
+ <!-- - - - - - - -->
+ <target name="init">
+ <property name="greeting" value="hi" />
+ <presetdef name="greeting">
+ <echo>${greeting}</echo>
+ </presetdef>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/import.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/import.xml
new file mode 100644
index 000000000..fd75a8129
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/import.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0"?> <!--
+ Copyright (c) 2005, 2006 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+
+<project name="importRequiringUserProperties" default="import-default">
+ <description>${importFileName to be defined as an argument, config property or in a config property file</description>
+ <import file="toBeImported.xml" />
+ <target name="one" depends="import-default">
+ <echo>one</echo>
+ </target>
+
+</project>
+
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/importRequiringUserProp.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/importRequiringUserProp.xml
new file mode 100644
index 000000000..18a12714f
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/importRequiringUserProp.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<project name="importRequiringUserProperties" default="import-default">
+ <description>${importFileName to be defined as an argument, config property or in a config property file</description>
+ <import file="${importFileName}" />
+ <target name="one" depends="import-default">
+ <echo>one</echo>
+ </target>
+
+</project>
+
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/importWithByteOrderMark.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/importWithByteOrderMark.xml
new file mode 100644
index 000000000..f6862ae06
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/importWithByteOrderMark.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--
+ Copyright (c) 2005, 2008 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+
+<project basedir="." name="dist" default="dist">
+ <import file="toBeImportedWithByteOrderMark.xml" />
+
+ <target name="dist" depends="build">
+ <echo message="echo - dist" />
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/input.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/input.xml
new file mode 100644
index 000000000..8d70ab5f4
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/input.xml
@@ -0,0 +1,7 @@
+<project name="input testing" default= "input test">
+ <target name="input test">
+ <input message="Enter for echo" addproperty= "inputTest">
+ </input>
+ <echo message="${inputTest}"/>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/internalTargets.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/internalTargets.xml
new file mode 100644
index 000000000..641125368
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/internalTargets.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="project" default="-default">
+ <target name="internal1">
+ <!-- internal because does it does not have description attribute -->
+ </target>
+
+ <target name="-internal2" description="something">
+ <!-- internal because it has name starting with '-' -->
+ </target>
+
+ <target name="non-internal" description="something">
+ <!-- non internal because it has description attribute -->
+ </target>
+
+ <target name="-default" depends="internal1,-internal2,non-internal">
+ <!-- non-internal target because it is default target -->
+ </target>
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/javac.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/javac.xml
new file mode 100644
index 000000000..61e00c2c4
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/javac.xml
@@ -0,0 +1,7 @@
+<project default="javacIt">
+ <target name="javacIt">
+ <javac includejavaruntime=""
+ followsymlinks=""
+ includeantruntime=""/>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/macrodef.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/macrodef.xml
new file mode 100644
index 000000000..72e3733b6
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/macrodef.xml
@@ -0,0 +1,22 @@
+<project default="type">
+
+ <macrodef name="eclipseMacro">
+ <attribute name="v" default="NOT SET" />
+ <attribute name="eclipse" default="yes" description="Testing Eclipse"/>
+ <element name="some-tasks" optional="yes" />
+ <sequential>
+ <echo>Eclipse!: @{v}</echo>
+ </sequential>
+ </macrodef>
+
+ <target name="type">
+ <eclipseMacro v="This is v">
+
+ </eclipseMacro>
+ <eclipseMacro v="This is v2"/>
+ <eclipseMacro v="This is v3"/>
+ <eclipseMacro v="This is v4"/>
+ <eclipseMacro/>
+ </target>
+
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/mixed.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/mixed.xml
new file mode 100644
index 000000000..368edbb86
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/mixed.xml
@@ -0,0 +1 @@
+<project><target><sql driver="" password="" url="" userid=""></sql><concat></concat></target></project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/nestedElementAttributes.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/nestedElementAttributes.xml
new file mode 100644
index 000000000..3b0d91923
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/nestedElementAttributes.xml
@@ -0,0 +1,8 @@
+<project default="go">
+ <taskdef name="nestedTest" classname="org.eclipse.ant.tests.ui.support.tasks.NestElementTask" />
+ <target name="go">
+ <nestedTest>
+ <nestedelement works="" />
+ </nestedTest>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/occurrencesTest.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/occurrencesTest.xml
new file mode 100644
index 000000000..fc8793b8e
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/occurrencesTest.xml
@@ -0,0 +1,49 @@
+<project name="default" default="default">
+ <description>
+ default
+ </description>
+ <property name="destBase" location="c:\temp\example" />
+ <property name="workspace" location="c:\eclipse3.1\dev" />
+ <property name="coreSource" location="${workspace}${destBase}
+\example.debug.core" />
+ <property name="uiSource" location="${workspace}\example.debug.ui" />
+
+ <target name="default" description="default">
+
+ <macrodef name="process">
+ <attribute name="destdir"/>
+ <attribute name="symbols"/>
+ <sequential>
+ <delete dir="@{destdir}"/>
+ <mkdir dir="@{destdir}\example.debug.core"/>
+ <mkdir dir="@{destdir}\example.debug.ui"/>
+ <preprocess destdir="@{destdir}\example.debug.core" symbols="@
+{symbols}">
+ <fileset dir="${coreSource}">
+ <exclude name="**/*.class"/>
+ </fileset>
+ </preprocess>
+ <preprocess destdir="@{destdir}\example.debug.ui" symbols="@
+{symbols}">
+ <fileset dir="${uiSource}">
+ <exclude name="**/*.class"/>
+ </fileset>
+ </preprocess>
+ </sequential>
+ </macrodef>
+
+ <process destdir="${destBase}\exercise1.1" symbols="ex1"/>
+ <process destdir="${destBase}\exercise2.1" symbols="ex2"/>
+
+ <property name="sameNameAsProp" value="hardToDistinguish"/>
+
+<property name="extendsDestBase" value="${destBase}/extension"/>
+ <echo>${extendsDestBase}</echo>
+
+ <ant target="default"></ant>
+ <antcall target="default"></antcall>
+ </target>
+
+ <target name="sameNameAsProp" unless="extendsDestBase" if="destBase"></target>
+ <fail unless="destBase" message="Property not set."/>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/outline_select_test_build.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/outline_select_test_build.xml
new file mode 100644
index 000000000..7df0f5e96
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/outline_select_test_build.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="org.eclipse.ui.externaltools.internal.ant.editor" default="zip.plugin" basedir=".">
+ <target name="init" depends="properties">
+ <property file="build.properties" />
+ <property name="version.suffix" value="_0.4.5" />
+ <property name="plugins_dir" value="${eclipse_dir}/plugins" />
+ <property name="plugin" value="org.eclipse.ui.externaltools.internal.ant.editor" />
+ <property name="full.name" value="${plugin}${version.suffix}" />
+ <property name="temp.folder" value="${basedir}/temp.folder" />
+ <property name="plugin.destination" value="${basedir}" />
+ <property name="build.result.folder" value="${basedir}" />
+ <property name="source.antEditor.jar" value="src/" />
+ <echo message="Value is ${plugins_dir}" />
+ </target>
+
+ <target name="properties" if="eclipse.running">
+ <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
+ </target>
+
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/performance/build.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/performance/build.xml
new file mode 100644
index 000000000..813490339
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/performance/build.xml
@@ -0,0 +1,2360 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 1993-2003 SEAGULL -->
+<?xm-well_formed path = ""?>
+<!-- ===================================================================
+
+Build file for the Transidiom Java components: AIS, IDT, IFT, etc.
+
+Notes:
+
+ - This is a build file for use with the Jakarta Ant build tool.
+ - naming guidelines:
+ - For properties, the names are generally moduleName.propertyType, e.g. ais.files.
+ - For targets, the names are generally action.moduleName, e.g. compile.ais.
+
+Prerequisites:
+
+ jakarta-ant from http://jakarta.apache.org
+ A JAXP-compliant XSLT transformer.
+ - Xalan, from http://xml.apache.org.
+ A JAXP-compliant DOM parser.
+ - Xerces, from http://xml.apache.org.
+
+Main targets:
+
+ clean Removes all the generated files and directories
+ clean.classes Removes all .class files
+ compile Compiles all the sources into ${build.classes}
+ dist Creates the distribution in ${build.dist}
+ jars Creates the jar files in ${build.lib}
+ nightly-build Creates a nightly build (does it all)
+ test Runs the tests.
+ test.compile Compiles the unit tests without triggering any dependencies.
+ verify Verifies the build by performing a load tests on jar files (does not trigger the jar dependencies.)
+ zip Creates the final ${zip-file} (does it all)
+
+TODO:
+ Distinguish between compile and runtime classpath:
+ - component.classpath.compile
+ - component.classpath.rt
+
+Authors:
+
+ Lee Breisacher: lbreisacher@seagullsw.com
+ Gary Gregory: ggregory@seagullsw.com
+
+==================================================================== -->
+<project default="zip" basedir="." name="transidiom">
+ <!-- General properties -->
+ <property file="local-build.properties"/>
+ <property file="build.properties"/>
+ <property name="COMPANY.word" value="SEAGULL"/>
+ <property name="product.name" value="Application Interface Server"/>
+ <property name="Name" value="Application Interface Server"/>
+ <property name="src.root.dir" value=".."/>
+ <property name="binary.root.dir" value="${src.root.dir}/../../BinE"/>
+ <!-- UGLY!! This creates a dependency to the 'E' tree. Not sure how to solve it, though -->
+ <property name="src.dir" value="${src.root.dir}/Source"/>
+ <property name="java.resource.dir" value="${src.root.dir}/Resources"/>
+ <property name="xslt.resource.dir" value="../../Resources/XSLT"/>
+ <property name="fdef.dirname" value="config/functions"/>
+ <property name="root.dir" value="${src.root.dir}/Root"/>
+ <property name="root.dir.sys" value="${root.dir}/System"/>
+ <property name="root.dir.sysdef" value="${root.dir.sys}/Defaults"/>
+ <property name="root.dir.server" value="${root.dir}/server"/>
+ <property name="root.dir.server-config" value="${root.dir.server}/config"/>
+ <property name="root.dir.tools-config" value="${root.dir}/tools/config"/>
+ <property name="root.dir.mq" value="${root.dir}/mq"/>
+ <property name="root.dir.server-log" value="${root.dir.server-config}/log"/>
+ <property name="root.dir.server-transform" value="${root.dir.server-config}/transform"/>
+ <property name="root.dir.tools-log" value="${root.dir.tools-config}/log"/>
+ <property name="doc.dir" value="${src.root.dir}/Doc/Deliver"/>
+ <property name="test.dir" value="${src.root.dir}/Test"/>
+ <property name="src.test.dir" value="${test.dir}/Source"/>
+ <property name="build.dir" location="${basedir}/../buildoutput"/>
+ <property name="build.classes" value="${build.dir}/classes"/>
+ <property name="build.etc" value="${build.dir}/etc"/>
+ <property name="build.lib" value="${build.dir}/lib"/>
+ <property name="build.checksum" location="${build.lib}/checksum"/>
+ <property name="all-jars.xml" location="${build.checksum}/all-jars.xml"/>
+ <property name="build.dist" value="${build.dir}/dist"/>
+ <property name="zipFileBaseName" value="AppInterface"/>
+ <property name="thirdparty.dir" value="../../../../ThirdParty"/>
+ <property name="modifiedthirdparty.dir" value="../../ModifiedThirdParty"/>
+ <property name="sourcesafemirror.dir" value="../../SourceSafeMirror"/>
+ <property name="src.sourcesafemirror.dir" value="${sourcesafemirror.dir}/Java/Source"/>
+ <!-- 3rd party jar references -->
+ <property name="apache.dir" value="${thirdparty.dir}/apache.org"/>
+ <property name="xalan.dir" value="${apache.dir}/xalan-j/2.5.1/bin"/>
+ <property name="ant.jarname" value="ant.jar"/>
+ <property name="ant.jar" value="${apache.dir}/jakarta-ant/1.5.2/${ant.jarname}"/>
+ <property name="xerces.jarname" value="xercesImpl.jar"/>
+ <property name="xerces.jar" value="${xalan.dir}/${xerces.jarname}"/>
+ <property name="xalan.jarname" value="xalan.jar"/>
+ <property name="xalan.jar" value="${xalan.dir}/${xalan.jarname}"/>
+ <property name="xsltc.jarname" value="xsltc.jar"/>
+ <property name="xsltc.jar" value="${xalan.dir}/${xsltc.jarname}"/>
+ <property name="xml-apis.jarname" value="xml-apis.jar"/>
+ <property name="xml-apis.jar" value="${xalan.dir}/${xml-apis.jarname}"/>
+ <property name="soap.jarname" value="soap.jar"/>
+ <property name="soap.jar" value="${modifiedthirdparty.dir}/Soap/2.2/java/build/lib/${soap.jarname}"/>
+ <property name="mail.jarname" value="mailapi.jar"/>
+ <property name="mail.jar" value="${thirdparty.dir}/sun/JavaMail/1.3/lib/${mail.jarname}"/>
+ <property name="activation.jarname" value="activation.jar"/>
+ <property name="activation.jar" value="${thirdparty.dir}/sun/jaf/1.0.2/${activation.jarname}"/>
+ <property name="servlet.jarname" value="servlet.jar"/>
+ <property name="servlet.dir" value="${apache.dir}/jakarta-tomcat/3.2.1/ServletAPI/lib"/>
+ <property name="servlet.jar" value="${servlet.dir}/${servlet.jarname}"/>
+ <property name="commons-httpclient.jarname" value="commons-httpclient-2.0-rc2.jar"/>
+ <property name="commons-httpclient.dir" value="${apache.dir}/commons-httpclient/2.0-rc2"/>
+ <property name="commons-httpclient.jar" value="${commons-httpclient.dir}/${commons-httpclient.jarname}"/>
+ <property name="commons-logging.jarname" value="commons-logging.jar"/>
+ <property name="commons-logging.dir" value="${apache.dir}/commons-logging/1.0.3"/>
+ <property name="commons-logging.jar" value="${commons-logging.dir}/${commons-logging.jarname}"/>
+ <property name="ibm.mq.jarname" value="com.ibm.mq.jar"/>
+ <property name="ibm.mq.jar" value="${thirdparty.dir}/IBM/MQSeries/5.2.2/${ibm.mq.jarname}"/>
+ <property name="ibm.mqbind.jar" value="${thirdparty.dir}/IBM/MQSeries/5.2.2/com.ibm.mqbind.jar"/>
+ <property name="ibm.mqjms.jar" value="${thirdparty.dir}/IBM/MQSeries/5.2.2/com.ibm.mqjms.jar"/>
+ <property name="ibm.mq.connector.jar" value="${thirdparty.dir}/IBM/MQSeries/5.2.2/connector.jar"/>
+ <property name="ibm.mq.jta.jar" value="${thirdparty.dir}/IBM/MQSeries/5.2.2/jta.jar"/>
+ <property name="microsoftsecurityclasses.zip" value="${thirdparty.dir}/Microsoft/security/5.00.2922.0/MicrosoftSecurityClasses.zip"/>
+ <property name="commons-codec.jarname" value="commons-codec-1.1.1-dev.jar"/>
+ <property name="commons-codec.jar" value="${apache.dir}/commons-codec/20030516/${commons-codec.jarname}"/>
+ <property name="commons-collections.jarname" value="commons-collections-2_1.jar"/>
+ <property name="commons-collections.jar" value="${apache.dir}/commons-collections/2.1/${commons-collections.jarname}"/>
+ <property name="commons-cli.jarname" value="commons-cli-1_0.jar"/>
+ <property name="commons-cli.jar" value="${apache.dir}/commons-cli/1.0/${commons-cli.jarname}"/>
+ <property name="commons-lang.jarname" value="commons-lang-2.0.jar"/>
+ <property name="commons-lang.jar" value="${apache.dir}/commons-lang/2.0/${commons-lang.jarname}"/>
+ <property name="commons-pool.jarname" value="commons-pool.jar"/>
+ <property name="commons-pool.jar" value="${apache.dir}/commons-pool/20030429/${commons-pool.jarname}"/>
+ <property name="ctgclient.jarname" value="ctgclient.jar"/>
+ <property name="ctgclient.dir" value="${thirdparty.dir}/IBM/CICS Transaction Gateway/5.0"/>
+ <property name="ctgclient.jar" value="${ctgclient.dir}/${ctgclient.jarname}"/>
+ <property name="jakarta-oro.jarname" value="jakarta-oro-2.0.7.jar"/>
+ <property name="jakarta-oro.jar" value="${apache.dir}/jakarta-oro/2.0.7/${jakarta-oro.jarname}"/>
+ <property name="log4j.jarname" value="log4j-1_2_7.jar"/>
+ <property name="log4j.jar" value="${apache.dir}/jakarta-log4j/1.2.7/${log4j.jarname}"/>
+ <property name="goXMLEngine.jar" value="${thirdparty.dir}/XMLGlobal/GoXMLTransform/3_0_0/lib/engine.jar"/>
+ <property name="goXMLResource.zip" value="${thirdparty.dir}/XMLGlobal/GoXMLTransform/3_0_0/lib/resource.zip"/>
+ <property name="goXMLconfig.dir" value="${thirdparty.dir}/XMLGlobal/GoXMLTransform/3_0_0/config"/>
+ <!-- JDom beta 8 is not compatible with GoXMLTransform 3.0.0, use beta 7 from GoXMLTransform 3.0.0 -->
+ <property name="jdom.jarname" value="jdom.jar"/>
+ <property name="jdom.jar" value="${thirdparty.dir}/XMLGlobal/GoXMLTransform/3_0_0/lib/${jdom.jarname}"/>
+ <property name="jaxb1.jarname" value="jaxb-api.jar"/>
+ <property name="jaxb2.jarname" value="jaxb-impl.jar"/>
+ <property name="jaxb3.jarname" value="jaxb-libs.jar"/>
+ <property name="jaxb4.jarname" value="jax-qname.jar"/>
+ <property name="jaxb5.jarname" value="namespace.jar"/>
+ <property name="jaxb6.jarname" value="xsdlib.jar"/>
+ <property name="jaxb7.jarname" value="relaxngDatatype.jar"/>
+ <property name="jaxb.jarnames" value="${jaxb1.jarname} ${jaxb2.jarname} ${jaxb3.jarname} ${jaxb4.jarname} ${jaxb5.jarname} ${jaxb6.jarname} ${jaxb7.jarname} "/>
+ <property name="jwsdp.dir" value="${thirdparty.dir}/sun/jwsdp/1.2"/>
+ <property name="jaxb.dir" value="${jwsdp.dir}/jaxb/lib"/>
+ <property name="jaxb.shared.dir" value="${jwsdp.dir}/jwsdp-shared/lib"/>
+ <property name="jaxb1.jar" value="${jaxb.dir}/${jaxb1.jarname}"/>
+ <property name="jaxb2.jar" value="${jaxb.dir}/${jaxb2.jarname}"/>
+ <property name="jaxb3.jar" value="${jaxb.dir}/${jaxb3.jarname}"/>
+ <property name="jaxb4.jar" value="${jaxb.shared.dir}/${jaxb4.jarname}"/>
+ <property name="jaxb5.jar" value="${jaxb.shared.dir}/${jaxb5.jarname}"/>
+ <property name="jaxb6.jar" value="${jaxb.shared.dir}/${jaxb6.jarname}"/>
+ <property name="jaxb7.jar" value="${jaxb.shared.dir}/${jaxb7.jarname}"/>
+ <property name="jms.jarname" value="jms-1_0_2_b.jar"/>
+ <property name="jms.jar" value="${thirdparty.dir}/sun/jms/1.0.2b/${jms.jarname}"/>
+ <property name="jce.jarname" value="jce1_2_2.jar"/>
+ <property name="jce.jar" value="${thirdparty.dir}/sun/jce/1.2.2/lib/${jce.jarname}"/>
+ <property name="jce_provider.jarname" value="sunjce_provider.jar"/>
+ <property name="jce_provider.jar" value="${thirdparty.dir}/sun/jce/1.2.2/lib/${jce_provider.jarname}"/>
+ <property name="jcert.jarname" value="jcert.jar"/>
+ <property name="jnet.jarname" value="jnet.jar"/>
+ <property name="jsse.jarname" value="jsse.jar"/>
+ <property name="jsse.dir" value="${thirdparty.dir}/sun/jsse/1.0.3_02-gl/lib"/>
+ <property name="jcert.jar" value="${jsse.dir}/${jcert.jarname}"/>
+ <property name="jnet.jar" value="${jsse.dir}/${jnet.jarname}"/>
+ <property name="jsse.jar" value="${jsse.dir}/${jsse.jarname}"/>
+ <property name="jaas.jarname" value="jaas-1_0.jar"/>
+ <property name="jaas.jar" value="${thirdparty.dir}/sun/jaas/1.0/lib/${jaas.jarname}"/>
+ <property name="jta.jarname" value="jta-1_0_1B-classes.zip"/>
+ <property name="jta.jar" value="${thirdparty.dir}/sun/jta/jta-1_0_1b/${jta.jarname}"/>
+ <property name="concurrent.jarname" value="concurrent-1_3_2.jar"/>
+ <property name="concurrent.jar" value="${thirdparty.dir}/oswego.edu/util.concurrent/1.3.2/${concurrent.jarname}"/>
+ <property name="xmlsec.jar" value="${apache.dir}/xml-security/xml-security-1_0_4/build/xmlsec-1_0_4.jar"/>
+ <property name="imsico.jarname" value="imsico-1_2_5.jar"/>
+ <property name="imsico.jar" value="${thirdparty.dir}/IBM/IMSICO/1.2.5/${imsico.jarname}"/>
+ <property name="imsico-connector.jarname" value="imsico-connector-1_2_5.jar"/>
+ <property name="imsico-connector.jar" value="${thirdparty.dir}/IBM/IMSICO/1.2.5/${imsico-connector.jarname}"/>
+ <property name="junit.jar" value="${thirdparty.dir}/junit/3.8.1/junit.jar"/>
+ <property name="mtjunit.jar" value="${thirdparty.dir}/MTJUnit/1.0/MTJUnit-1.jar"/>
+ <property name="retroguard.jar" value="${thirdparty.dir}/Retroguard/1.1.13/retroguard.jar"/>
+ <property name="j2se.tools.jarname" value="tools.jar"/>
+ <property name="j2se.tools.jar" value="${thirdparty.dir}/sun/j2se/1.3.1_08/lib/${j2se.tools.jarname}"/>
+ <property name="obfuscate.script" value="${src.root.dir}/Build/obfuscate_hsc.rgs"/>
+ <property name="obfuscate.log" value="${build.lib}/obfuscate_hsc.log"/>
+ <property name="extension.dir.name" value="ext"/>
+ <property name="compile.debug" value="on"/>
+ <property name="compile.optimize" value="off"/>
+ <!-- These two will normally be set outside this file in the build.properties file. -->
+ <property name="version" value="2.3.X.WIP"/>
+ <property name="build.id" value="0"/>
+ <!-- Jar Manifest standard properties -->
+ <property name="manifest.key.main-class" value="Main-Class"/>
+ <property name="manifest.key.class-path" value="Class-Path"/>
+ <!-- Jar Manifest Seagull properties -->
+ <property name="manifest.key.product" value="${COMPANY.word}-Product"/>
+ <property name="manifest.key.component" value="${COMPANY.word}-Component"/>
+ <property name="manifest.key.version" value="${COMPANY.word}-Version"/>
+ <property name="manifest.key.build" value="${COMPANY.word}-Build"/>
+ <property name="manifest.key.build-ts" value="${COMPANY.word}-Build-Timestamp"/>
+ <!-- Javadoc -->
+ <property name="javadoc.j2se.link" value="http://java.sun.com/j2se/1.3/docs/api/"/>
+ <!-- Checksum -->
+ <property name="checksum.algorithm.md5" value="MD5"/>
+ <property name="checksum.algorithm.sha" value="SHA"/>
+ <!-- =================================================================== -->
+ <!-- Source files and class paths -->
+ <!-- =================================================================== -->
+ <!-- AIS -->
+ <patternset id="ais.files">
+ <include name="com/seagullsw/appinterface/server/**"/>
+ <include name="com/seagullsw/perftest/"/>
+ <exclude name="com/seagullsw/appinterface/server/backend/cics/"/>
+ <exclude name="com/seagullsw/appinterface/server/backend/cobol/"/>
+ <exclude name="com/seagullsw/appinterface/server/backend/ims/"/>
+ <exclude name="com/seagullsw/appinterface/server/backend/hostconnector/"/>
+ <exclude name="com/seagullsw/appinterface/server/backend/hostconnector2/"/>
+ <exclude name="com/seagullsw/appinterface/server/backend/hc5250/"/>
+ <exclude name="com/seagullsw/appinterface/server/backend/hc3270/"/>
+ <exclude name="com/seagullsw/appinterface/server/admin/"/>
+ <exclude name="com/seagullsw/appinterface/server/InvocationUnitTests.*"/>
+ </patternset>
+ <property name="ais-core.jarname" value="ais-core.jar"/>
+ <property name="ais-core.jar" value="${build.lib}/${ais-core.jarname}"/>
+ <path id="jaxb.classpath">
+ <pathelement location="${jaxb1.jar}"/>
+ <pathelement location="${jaxb2.jar}"/>
+ <pathelement location="${jaxb3.jar}"/>
+ <pathelement location="${jaxb4.jar}"/>
+ <pathelement location="${jaxb5.jar}"/>
+ <pathelement location="${jaxb6.jar}"/>
+ <pathelement location="${jaxb7.jar}"/>
+ </path>
+ <path id="jsse.classpath">
+ <pathelement location="${jcert.jar}"/>
+ <pathelement location="${jnet.jar}"/>
+ <pathelement location="${jsse.jar}"/>
+ </path>
+ <path id="jce.classpath.rt">
+ <pathelement location="${jce.jar}"/>
+ <pathelement location="${jce_provider.jar}"/>
+ </path>
+ <path id="ais.classpath">
+ <pathelement location="${ibm.mq.jar}"/>
+ <pathelement location="${ibm.mqbind.jar}"/>
+ <pathelement location="${ibm.mqjms.jar}"/>
+ <pathelement location="${xerces.jar}"/>
+ <pathelement location="${xml-apis.jar}"/>
+ <pathelement location="${xalan.jar}"/>
+ <pathelement location="${soap.jar}"/>
+ <pathelement location="${mail.jar}"/>
+ <pathelement location="${commons-codec.jar}"/>
+ <pathelement location="${commons-collections.jar}"/>
+ <pathelement location="${commons-httpclient.jar}"/>
+ <pathelement location="${commons-lang.jar}"/>
+ <pathelement location="${commons-pool.jar}"/>
+ <pathelement location="${commons-cli.jar}"/>
+ <path refid="jaxb.classpath"/>
+ <pathelement location="${jms.jar}"/>
+ <pathelement location="${concurrent.jar}"/>
+ <pathelement location="${jce.jar}"/>
+ </path>
+ <path id="xml.classpath.compile">
+ <pathelement location="${xml-apis.jar}"/>
+ </path>
+ <path id="xml.classpath.rt">
+ <pathelement location="${xml-apis.jar}"/>
+ <pathelement location="${xerces.jar}"/>
+ <pathelement location="${xalan.jar}"/>
+ </path>
+ <path id="transforms.classpath">
+ <pathelement location="${jakarta-oro.jar}"/>
+ <pathelement location="${xml-apis.jar}"/>
+ <pathelement location="${xerces.jar}"/>
+ <pathelement location="${xalan.jar}"/>
+ <pathelement location="${goXMLEngine.jar}"/>
+ <path refid="jaxb.classpath"/>
+ <pathelement location="${commons-lang.jar}"/>
+ </path>
+ <path id="ais.client.classpath">
+ <pathelement location="${ibm.mq.jar}"/>
+ <pathelement location="${ibm.mqbind.jar}"/>
+ <pathelement location="${ibm.mqjms.jar}"/>
+ <pathelement location="${xml-apis.jar}"/>
+ <pathelement location="${commons-collections.jar}"/>
+ <pathelement location="${commons-lang.jar}"/>
+ <pathelement location="${commons-pool.jar}"/>
+ <path refid="jaxb.classpath"/>
+ <pathelement location="${jms.jar}"/>
+ </path>
+ <!-- AppInterface Communications -->
+ <patternset id="appinterfacecomm.files">
+ <include name="com/seagullsw/appinterface/comm/"/>
+ <exclude name="com/seagullsw/appinterface/comm/servlet/*"/>
+ </patternset>
+ <!-- MTalk Communications -->
+ <patternset id="mtalkcomm.files">
+ <include name="com/seagullsw/net/client/mtalk/"/>
+ </patternset>
+ <!-- AppInterface Setting -->
+ <patternset id="appinterfacesettings.files">
+ <include name="com/seagullsw/appinterface/settings/*"/>
+ </patternset>
+ <path id="appinterfacesettings.classpath">
+ <pathelement location="${xml-apis.jar}"/>
+ <pathelement location="${commons-lang.jar}"/>
+ </path>
+ <!-- AppInterface Server Settings -->
+ <patternset id="appinterfaceserversettings.files">
+ <include name="com/seagullsw/appinterface/server/settings/"/>
+ </patternset>
+ <!-- AppInterface Client -->
+ <patternset id="ais.client.files">
+ <include name="com/seagullsw/appinterface/client/"/>
+ <include name="com/seagullsw/toolbox/config/"/>
+ <include name="com/seagullsw/toolbox/xml/"/>
+ <include name="com/seagullsw/toolbox/log/"/>
+ </patternset>
+ <property name="ais.client.jarname" value="ais-client.jar"/>
+ <property name="ais.client.jar" value="${build.lib}/${ais.client.jarname}"/>
+ <!-- AppInterface Admin Client-->
+ <patternset id="ais.adminclient.files">
+ <include name="com/seagullsw/appinterface/server/admin/*"/>
+ </patternset>
+ <path id="ais.adminclient.classpath">
+ <pathelement location="${commons-lang.jar}"/>
+ <pathelement location="${commons-cli.jar}"/>
+ </path>
+ <property name="ais-adminclient.jarname" value="ais-admin-client.jar"/>
+ <property name="ais-adminclient.jar" value="${build.lib}/${ais-adminclient.jarname}"/>
+ <!-- AppInterface Models -->
+ <patternset id="appinterfacemodels.files">
+ <include name="com/seagullsw/appinterface/model/"/>
+ <exclude name="com/seagullsw/appinterface/model/cics/"/>
+ <exclude name="com/seagullsw/appinterface/model/cobol/"/>
+ <exclude name="com/seagullsw/appinterface/model/ims/"/>
+ </patternset>
+ <!-- Java Extensions -->
+ <patternset id="javaextensions.files">
+ <include name="com/seagullsw/debug/*"/>
+ <include name="com/seagullsw/javax/"/>
+ <exclude name="com/seagullsw/javax/swing/"/>
+ </patternset>
+ <path id="javaextensions.classpath">
+ <pathelement location="${commons-lang.jar}"/>
+ </path>
+ <!-- UIFacilities -->
+ <patternset id="uifacilities.files">
+ <include name="com/parcplace/pjava/Framer/"/>
+ <include name="com/seagullsw/javax/swing/SwingUtilitiesX.*"/>
+ <include name="com/seagullsw/javax/swing/JTextPaneX.*"/>
+ <include name="com/seagullsw/javax/swing/border/"/>
+ <include name="com/seagullsw/ui/"/>
+ <include name="com/seagullsw/debug/ui/"/>
+ </patternset>
+ <path id="uifacilities.classpath">
+ <pathelement location="${commons-lang.jar}"/>
+ </path>
+ <!-- XML Services -->
+ <patternset id="xmlservices.files">
+ <include name="com/seagullsw/io/xml/"/>
+ </patternset>
+ <path id="xmlservices.classpath">
+ <pathelement location="${xml-apis.jar}"/>
+ <pathelement location="${xerces.jar}"/>
+ </path>
+ <!-- Transforms -->
+ <patternset id="transforms.files">
+ <include name="com/seagullsw/appinterface/transforms/"/>
+ </patternset>
+ <!-- Seagull Toolbox -->
+ <patternset id="seagulltoolbox.files">
+ <include name="com/seagullsw/toolbox/"/>
+ </patternset>
+ <path id="seagulltoolbox.classpath">
+ <path refid="xml.classpath.rt"/>
+ <path refid="jaxb.classpath"/>
+ <path refid="jsse.classpath"/>
+ <pathelement location="${commons-httpclient.jar}"/>
+ <pathelement location="${commons-lang.jar}"/>
+ <pathelement location="${commons-cli.jar}"/>
+ </path>
+ <!-- Win32 Interface -->
+ <patternset id="win32interface.files">
+ <include name="com/seagullsw/appinterface/win32/"/>
+ </patternset>
+ <!-- Proxy Servlet -->
+ <patternset id="proxyservlet.files">
+ <include name="com/seagullsw/appinterface/comm/servlet/"/>
+ </patternset>
+ <property name="proxyservlet.jarname" value="ais-servlet-proxy.jar"/>
+ <property name="proxyservlet.jar" value="${build.lib}/${proxyservlet.jarname}"/>
+ <path id="proxyservlet.classpath">
+ <pathelement location="${servlet.jar}"/>
+ <pathelement location="${xerces.jar}"/>
+ </path>
+ <!-- Admin Console -->
+ <patternset id="adminconsole.files">
+ <include name="com/seagullsw/appinterface/server/admin/client/"/>
+ </patternset>
+ <property name="adminconsole.jarname" value="ais-admin.jar"/>
+ <property name="adminconsole.jar" value="${build.lib}/${adminconsole.jarname}"/>
+ <!-- Java Connector Generator -->
+ <patternset id="javaconnectorgenerator.files">
+ <include name="com/seagullsw/appinterface/tools/javaconnectorgenerator/"/>
+ </patternset>
+ <property name="javaconnectorgenerator.jarname" value="JavaConnectorGenerator.jar"/>
+ <property name="javaconnectorgenerator.jar" value="${build.lib}/${javaconnectorgenerator.jarname}"/>
+ <!-- Security Toolkit -->
+ <patternset id="securitytoolkit.files">
+ <include name="com/seagullsw/appinterface/tools/security/"/>
+ </patternset>
+ <property name="securitytoolkit.jarname" value="SecurityToolkit.jar"/>
+ <property name="securitytoolkit.jar" value="${build.lib}/${securitytoolkit.jarname}"/>
+ <!-- Tools Framework -->
+ <patternset id="devtools.framework.files">
+ <include name="com/seagullsw/appinterface/tools/framework/"/>
+ </patternset>
+ <path id="devtools.framework.classpath">
+ <pathelement location="${commons-lang.jar}"/>
+ </path>
+ <!-- Dev Tools -->
+ <patternset id="devtools.files">
+ <include name="com/seagullsw/appinterface/tools/"/>
+ <exclude name="com/seagullsw/appinterface/tools/security/"/>
+ </patternset>
+ <path id="devtools.classpath">
+ <pathelement location="${xml-apis.jar}"/>
+ <pathelement location="${soap.jar}"/>
+ <pathelement location="${commons-lang.jar}"/>
+ <pathelement location="${jce.jar}"/>
+ </path>
+ <property name="ais-tools.jarname" value="ais-tools.jar"/>
+ <property name="ais-tools.jar" value="${build.lib}/${ais-tools.jarname}"/>
+ <!-- JavaTools (e.g. invoking the Java compiler) -->
+ <patternset id="javatools.files">
+ <include name="com/seagullsw/javatools/"/>
+ </patternset>
+ <path id="javatools.classpath">
+ <pathelement location="${j2se.tools.jar}"/>
+ <pathelement location="${jce.jar}"/>
+ <path refid="jaxb.classpath"/>
+ <pathelement location="${commons-lang.jar}"/>
+ </path>
+ <!-- Backends -->
+ <patternset id="hcbackend.files">
+ <include name="com/seagullsw/appinterface/**/*hostconnector*/"/>
+ <include name="com/seagullsw/appinterface/server/backend/hsc/**"/>
+ </patternset>
+ <patternset id="cobol.files">
+ <include name="com/seagullsw/appinterface/server/backend/cobol/"/>
+ <include name="com/seagullsw/appinterface/model/cobol/"/>
+ </patternset>
+ <path id="cobol.classpath">
+ <pathelement location="${xml-apis.jar}"/>
+ <pathelement location="${commons-lang.jar}"/>
+ <pathelement location="${commons-httpclient.jar}"/>
+ </path>
+ <patternset id="cics.files">
+ <include name="com/seagullsw/appinterface/server/backend/cics/"/>
+ <include name="com/seagullsw/appinterface/model/cics/"/>
+ </patternset>
+ <patternset id="ims.backend.files">
+ <include name="com/seagullsw/appinterface/server/backend/ims/"/>
+ <include name="com/seagullsw/appinterface/model/ims/"/>
+ </patternset>
+ <path id="cics.backend.classpath">
+ <pathelement location="${ctgclient.jar}"/>
+ <pathelement location="${xml-apis.jar}"/>
+ <pathelement location="${xerces.jar}"/>
+ <path refid="jaxb.classpath"/>
+ <pathelement location="${jce.jar}"/>
+ <pathelement location="${commons-codec.jar}"/>
+ <pathelement location="${commons-lang.jar}"/>
+ </path>
+ <path id="ims.backend.classpath">
+ <pathelement location="${xml-apis.jar}"/>
+ <pathelement location="${jaas.jar}"/>
+ <pathelement location="${imsico.jar}"/>
+ <pathelement location="${imsico-connector.jar}"/>
+ <pathelement location="${jce.jar}"/>
+ <pathelement location="${jta.jar}"/>
+ <pathelement location="${commons-httpclient.jar}"/>
+ <path refid="jaxb.classpath"/>
+ </path>
+ <property name="ais-5250.jarname" value="ais-5250.jar"/>
+ <property name="ais-5250.jar" value="${build.lib}/${ais-5250.jarname}"/>
+ <property name="ais-3270.jarname" value="ais-3270.jar"/>
+ <property name="ais-3270.jar" value="${build.lib}/${ais-3270.jarname}"/>
+ <property name="ais-cobol.jarname" value="ais-cobol.jar"/>
+ <property name="ais-cobol.jar" value="${build.lib}/${ais-cobol.jarname}"/>
+ <property name="ais-cics.jarname" value="ais-cics.jar"/>
+ <property name="ais-cics.jar" value="${build.lib}/${ais-cics.jarname}"/>
+ <property name="ais-ims.jarname" value="ais-ims.jar"/>
+ <property name="ais-ims.jar" value="${build.lib}/${ais-ims.jarname}"/>
+ <property name="hsc.jarname" value="gwhsc.jar"/>
+ <property name="hsc.jar" value="${build.lib}/${hsc.jarname}"/>
+ <property name="hscu.jarname" value="gwhscu.jar"/>
+ <property name="hscu.jar" value="${build.lib}/${hscu.jarname}"/>
+ <!-- HSC -->
+ <patternset id="hsc.files">
+ <include name="com/seagullsw/gateway/"/>
+ <include name="com/seagullsw/net/"/>
+ <include name="com/seagullsw/security/"/>
+ <include name="com/seagullsw/system/"/>
+ <exclude name="com/seagullsw/net/client/mtalk/"/>
+ </patternset>
+ <!-- All the XSLT files -->
+ <fileset id="xslt.files" dir="${xslt.resource.dir}">
+ <include name="*.xsl"/>
+ </fileset>
+ <!-- All the AppInterface "base" classes -->
+ <fileset id="appinterface.base.files" dir="${build.classes}">
+ <patternset refid="appinterfacecomm.files"/>
+ <patternset refid="appinterfacemodels.files"/>
+ <patternset refid="javaextensions.files"/>
+ <patternset refid="xmlservices.files"/>
+ <patternset refid="mtalkcomm.files"/>
+ </fileset>
+ <!-- All the AppInterface "base" classes -->
+ <fileset id="appinterface.baseplus.files" dir="${build.classes}">
+ <!-- What I really want to do here is refer to the .base.files
+ fileset, but ant doesn't allow nested filesets. Sigh.
+ <fileset refid="appinterface.base.files"/> -->
+ <patternset refid="appinterfacecomm.files"/>
+ <patternset refid="appinterfacemodels.files"/>
+ <patternset refid="javaextensions.files"/>
+ <patternset refid="xmlservices.files"/>
+ <patternset refid="appinterfacesettings.files"/>
+ <patternset refid="uifacilities.files"/>
+ <patternset refid="seagulltoolbox.files"/>
+ <patternset refid="mtalkcomm.files"/>
+ <patternset refid="transforms.files"/>
+ </fileset>
+ <!-- =================================================================== -->
+ <!-- Set file copy filters -->
+ <!-- =================================================================== -->
+ <property name="text.copyright.1" value="(c) 1993 - 2003 Seagull Business Software Ireland Ltd."/>
+ <property name="text.copyright.2" value="All Rights Reserved."/>
+ <target name="init.filters">
+ <filter token="PRODUCT" value="${product.name}"/>
+ <filter token="VERSION" value="${version}"/>
+ <filter token="BUILDID" value="${build.id}"/>
+ <filter token="BUILDTIMESTAMP" value="${BuildTimeStamp}"/>
+ <filter token="COPYRIGHT-1" value="${text.copyright.1}"/>
+ <filter token="COPYRIGHT-2" value="${text.copyright.2}"/>
+ </target>
+ <!-- =================================================================== -->
+ <!-- Compiles -->
+ <!-- =================================================================== -->
+ <target name="compile" depends="compile.ais, compile.ais.client, compile.ais.adminclient, compile.devtools, compile.proxyservlet, compile.adminconsole, compile.javaconnectorgenerator, compile.securitytoolkit, compile.hcbackend, compile.cobol, compile.cics, compile.IMSbackend" description="Compiles all the sources into ${build.classes}"/>
+ <!-- doACompile - a compile "subroutine" -->
+ <target name="doACompile">
+ <javac srcdir="${src.dir}" destdir="${build.classes}" debug="${compile.debug}" optimize="${compile.optimize}" failonerror="true" includeAntRuntime="false">
+ <patternset refid="${doACompile.files}"/>
+ </javac>
+ </target>
+ <!-- doACompileWithClasspath - a compile "subroutine" -->
+ <target name="doACompileWithClasspath">
+ <javac srcdir="${src.dir}" destdir="${build.classes}" debug="${compile.debug}" optimize="${compile.optimize}" failonerror="true" includeAntRuntime="false">
+ <patternset refid="${doACompile.files}"/>
+ <classpath refid="${doACompile.classpath}"/>
+ </javac>
+ </target>
+ <!-- AIS -->
+ <target name="compile.ais" depends="compile.toolbox, compile.xmlservices, compile.transforms, compile.uifacilities, compile.appinterfacesettings, compile.appinterfacemodels, compile.appinterfacecomm, compile.hsc, compile.mtalkcomm">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="ais.files"/>
+ <param name="doACompile.classpath" value="ais.classpath"/>
+ </antcall>
+ </target>
+ <!-- AppInterface Models -->
+ <target name="compile.appinterfacemodels" depends="prepare, compile.xmlservices">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="appinterfacemodels.files"/>
+ <param name="doACompile.classpath" value="ais.classpath"/>
+ </antcall>
+ </target>
+ <!-- AppInterface Communications -->
+ <target name="compile.appinterfacecomm" depends="prepare">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="appinterfacecomm.files"/>
+ <param name="doACompile.classpath" value="ais.classpath"/>
+ </antcall>
+ </target>
+ <!-- MTalk Communication -->
+ <target name="compile.mtalkcomm" depends="prepare">
+ <antcall target="doACompile">
+ <param name="doACompile.files" value="mtalkcomm.files"/>
+ </antcall>
+ </target>
+ <!-- AppInterface Setting -->
+ <target name="compile.appinterfacesettings" depends="prepare">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="appinterfacesettings.files"/>
+ <param name="doACompile.classpath" value="appinterfacesettings.classpath"/>
+ </antcall>
+ </target>
+ <!-- UI Facilities -->
+ <target name="compile.uifacilities" depends="prepare">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="uifacilities.files"/>
+ <param name="doACompile.classpath" value="uifacilities.classpath"/>
+ </antcall>
+ </target>
+ <!-- Java Extensions -->
+ <target name="compile.javaextensions" depends="prepare">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="javaextensions.files"/>
+ <param name="doACompile.classpath" value="javaextensions.classpath"/>
+ </antcall>
+ </target>
+ <!-- XML Services -->
+ <target name="compile.xmlservices" depends="compile.javaextensions">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="xmlservices.files"/>
+ <param name="doACompile.classpath" value="xmlservices.classpath"/>
+ </antcall>
+ </target>
+ <!-- Transforms -->
+ <target name="compile.transforms" depends="compile.javaextensions">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="transforms.files"/>
+ <param name="doACompile.classpath" value="transforms.classpath"/>
+ </antcall>
+ </target>
+ <!-- Seagull Toolbox -->
+ <target name="compile.toolbox" depends="compile.javaextensions">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="seagulltoolbox.files"/>
+ <param name="doACompile.classpath" value="seagulltoolbox.classpath"/>
+ </antcall>
+ </target>
+ <!-- Win32 Interface -->
+ <target name="compile.win32interface" depends="prepare">
+ <antcall target="doACompile">
+ <param name="doACompile.files" value="win32interface.files"/>
+ </antcall>
+ </target>
+ <!-- AppInterface Client -->
+ <target name="compile.ais.client" depends="prepare, compile.xmlservices, compile.appinterfacecomm, compile.appinterfacemodels">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="ais.client.files"/>
+ <param name="doACompile.classpath" value="ais.client.classpath"/>
+ </antcall>
+ </target>
+ <!-- AppInterface Admin Client -->
+ <target name="compile.ais.adminclient" depends="prepare, compile.xmlservices, compile.appinterfacecomm, compile.appinterfacemodels, compile.ais.client">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="ais.adminclient.files"/>
+ <param name="doACompile.classpath" value="ais.classpath"/>
+ </antcall>
+ </target>
+ <!-- Proxy Servlet -->
+ <target name="compile.proxyservlet" depends="prepare">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="proxyservlet.files"/>
+ <param name="doACompile.classpath" value="proxyservlet.classpath"/>
+ </antcall>
+ </target>
+ <!-- Admin Console -->
+ <target name="compile.adminconsole" depends="prepare, compile.devtools.framework">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="adminconsole.files"/>
+ <param name="doACompile.classpath" value="ais.adminclient.classpath"/>
+ </antcall>
+ </target>
+ <!-- Java Connector Generator -->
+ <target name="compile.javaconnectorgenerator" depends="prepare, compile.devtools.framework, compile.appinterfacemodels, compile.javatools">
+ <antcall target="doACompile">
+ <param name="doACompile.files" value="javaconnectorgenerator.files"/>
+ </antcall>
+ </target>
+ <!-- Security Toolkit -->
+ <target name="compile.securitytoolkit" depends="prepare, compile.devtools.framework, compile.appinterfacemodels, compile.javatools">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="securitytoolkit.files"/>
+ <param name="doACompile.classpath" value="devtools.classpath"/>
+ </antcall>
+ </target>
+ <!-- Tools Framework -->
+ <target name="compile.devtools.framework" depends="prepare, compile.toolbox, compile.xmlservices, compile.uifacilities, compile.appinterfacesettings">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="devtools.framework.files"/>
+ <param name="doACompile.classpath" value="devtools.framework.classpath"/>
+ </antcall>
+ </target>
+ <!-- DevTools -->
+ <target name="compile.devtools" depends="prepare, compile.devtools.framework, compile.ais.client, compile.appinterfacemodels, compile.javatools">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="devtools.files"/>
+ <param name="doACompile.classpath" value="devtools.classpath"/>
+ </antcall>
+ </target>
+ <!-- JavaTools (e.g. invoking the Java compiler) -->
+ <target name="compile.javatools" depends="prepare">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="javatools.files"/>
+ <param name="doACompile.classpath" value="javatools.classpath"/>
+ </antcall>
+ </target>
+ <!-- Backends -->
+ <target name="compile.hcbackend" depends="prepare, compile.ais">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="hcbackend.files"/>
+ <param name="doACompile.classpath" value="ais.classpath"/>
+ </antcall>
+ </target>
+ <target name="compile.cobol" depends="prepare, compile.ais">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="cobol.files"/>
+ <param name="doACompile.classpath" value="cobol.classpath"/>
+ </antcall>
+ </target>
+ <target name="compile.cics" depends="prepare, compile.ais">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="cics.files"/>
+ <param name="doACompile.classpath" value="cics.backend.classpath"/>
+ </antcall>
+ </target>
+ <target name="compile.IMSbackend" depends="prepare, compile.ais">
+ <antcall target="doACompileWithClasspath">
+ <param name="doACompile.files" value="ims.backend.files"/>
+ <param name="doACompile.classpath" value="ims.backend.classpath"/>
+ </antcall>
+ </target>
+ <!-- HSC -->
+ <target name="compile.hsc" depends="prepare">
+ <javac srcdir="${src.sourcesafemirror.dir}" classpath="${microsoftsecurityclasses.zip}" destdir="${build.classes}" debug="${compile.debug}" includeAntRuntime="false">
+ <include name="com/seagullsw/"/>
+ </javac>
+ </target>
+ <!-- JavaDoc doclet -->
+ <target name="compile.doclet">
+ <javac srcdir="${src.dir}" destdir="${build.classes}" debug="${compile.debug}" includeAntRuntime="true">
+ <include name="com/seagullsw/internaldev/tools/apidoclet//"/>
+ </javac>
+ </target>
+ <!-- =================================================================== -->
+ <!-- Create jar files -->
+ <!-- =================================================================== -->
+ <target name="compute-checksum">
+ <checksum file="${file}" algorithm="${checksum.algorithm.md5}" property="cs_value"/>
+ <echo level="info" message="${checksum.algorithm.md5} -> ${cs_value}"/>
+ <mkdir dir="${build.checksum}"/>
+ <!-- Create a text file with the checksum value. -->
+ <concat destfile="${build.checksum}/${filename}.${checksum.algorithm.md5}.txt">${cs_value}</concat>
+ <!-- Create an XML file with the checksum value. -->
+ <concat destfile="${build.checksum}/${filename}.${checksum.algorithm.md5}.xml">&lt;?xml version="1.0"?>
+&lt;!-- Build auto-generated -->
+&lt;checksum file="${filename}" algorithm="${checksum.algorithm.md5}">${cs_value}&lt;/checksum></concat>
+ <xmlvalidate file="${build.checksum}/${filename}.${checksum.algorithm.md5}.xml" lenient="true"/>
+ </target>
+ <!-- Create all-jars.xml -->
+ <target name="create-all-jars.xml">
+ <!-- Create an XML file with the jar file names created. -->
+ <concat destfile="${all-jars.xml}">&lt;?xml version="1.0"?>
+&lt;!-- Build auto-generated -->
+&lt;jars>
+ &lt;jar>${ais-core.jarname}&lt;/jar>
+ &lt;jar>${ais.client.jarname}&lt;/jar>
+ &lt;jar>${ais-adminclient.jarname}&lt;/jar>
+ &lt;jar>${proxyservlet.jarname}&lt;/jar>
+ &lt;jar>${adminconsole.jarname}&lt;/jar>
+ &lt;jar>${javaconnectorgenerator.jarname}&lt;/jar>
+ &lt;jar>${securitytoolkit.jarname}&lt;/jar>
+ &lt;jar>${ais-tools.jarname}&lt;/jar>
+ &lt;jar>${ais-5250.jarname}&lt;/jar>
+ &lt;jar>${ais-3270.jarname}&lt;/jar>
+ &lt;jar>${ais-cobol.jarname}&lt;/jar>
+ &lt;jar>${ais-cics.jarname}&lt;/jar>
+ &lt;jar>${ais-ims.jarname}&lt;/jar>
+ &lt;jar>${hsc.jarname}&lt;/jar>
+ &lt;jar>${hscu.jarname}&lt;/jar>
+&lt;/jars>
+ </concat>
+ <echo level="info" message="Created ${all-jars.xml}"/>
+ <xmlvalidate file="${all-jars.xml}" lenient="true"/>
+ </target>
+ <!-- Copy checksum files to report dir -->
+ <target name="copy-checksums">
+ <antcall target="create-all-jars.xml"/>
+ <copy todir="${reports.checksum}">
+ <fileset dir="${build.checksum}"/>
+ </copy>
+ </target>
+ <target name="jars" depends="jar.ais-core, jar.ais.client, jar.ais.adminclient, jar.proxyservlet, jar.adminconsole, jar.javaconnectorgenerator, jar.securitytoolkit, jar.ais-tools, jar.ais-5250, jar.ais-3270, jar.ais-cobol, jar.ais-cics, jar.ais-ims, jar.hsc" description="Creates the jar files in ${build.lib}">
+ <antcall target="copy-checksums"/>
+ </target>
+ <target name="jar.ais-core" depends="init, compile.ais, createSplash.ais.splashscreens">
+ <mkdir dir="${build.lib}"/>
+ <jar jarfile="${ais-core.jar}" basedir="${build.classes}">
+ <patternset refid="ais.files"/>
+ <fileset refid="appinterface.baseplus.files"/>
+ <patternset>
+ <include name="com/seagullsw/javax/swing/"/>
+ <!-- Not sure why this isn't getting included as part of uifacilities.files via appinterface.baseplus.files. -->
+ </patternset>
+ <fileset refid="xslt.files"/>
+ <fileset dir="${java.resource.dir}">
+ <include name="com/seagullsw/appinterface/server/**"/>
+ <include name="com/seagullsw/appinterface/comm/**"/>
+ <exclude name="com/seagullsw/appinterface/server/admin/**"/>
+ </fileset>
+ <fileset dir="${src.dir}">
+ <include name="com/seagullsw/**/jaxb.properties"/>
+ <include name="com/seagullsw/**/bgm.ser"/>
+ </fileset>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.main-class}" value="com.seagullsw.appinterface.server.AppInterfaceServer"/>
+ <attribute name="${manifest.key.class-path}" value="${ais-5250.jarname} ${ais-3270.jarname} ${ais-cobol.jarname} ${ais-cics.jarname} ${ais-ims.jarname} ${xalan.jarname} ${soap.jarname} ${activation.jarname} ${mail.jarname} ${commons-collections.jarname} ${commons-pool.jarname} ${xerces.jarname} ${xml-apis.jarname} ${commons-lang.jarname} ${commons-cli.jarname} ${jaxb.jarnames} ${jakarta-oro.jarname} ${concurrent.jarname} ${commons-httpclient.jarname} ${jms.jarname} ${extension.dir.name}/engine.jar ${extension.dir.name}/resource.zip ${extension.dir.name}/jdom.jar ../${fdef.dirname}/ ../JavaConnectors/Classes/"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="AIS Core"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${ais-core.jar}"/>
+ <param name="filename" value="${ais-core.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.ais.client" depends="init, compile.ais.client">
+ <mkdir dir="${build.lib}"/>
+ <jar jarfile="${ais.client.jar}" basedir="${build.classes}">
+ <patternset refid="ais.client.files"/>
+ <fileset refid="appinterface.base.files"/>
+ <fileset dir="${src.dir}">
+ <include name="com/seagullsw/toolbox/config/**/jaxb.properties"/>
+ <include name="com/seagullsw/toolbox/config/**/bgm.ser"/>
+ </fileset>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.class-path}" value="${xerces.jarname} ${xml-apis.jarname} ${commons-lang.jarname} ${jaxb.jarnames} ${ibm.mq.jarname} ${jms.jarname} ${mail.jarname} ${soap.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="Java Client"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${ais.client.jar}"/>
+ <param name="filename" value="${ais.client.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.ais.adminclient" depends="init, compile.ais.adminclient">
+ <mkdir dir="${build.lib}"/>
+ <jar jarfile="${ais-adminclient.jar}" basedir="${build.classes}">
+ <patternset refid="ais.adminclient.files"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.class-path}" value="${ais.client.jarname} ${xerces.jarname} ${xml-apis.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="Java Admin Client"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${ais-adminclient.jar}"/>
+ <param name="filename" value="${ais-adminclient.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.proxyservlet" depends="init, compile.proxyservlet">
+ <mkdir dir="${build.lib}"/>
+ <jar jarfile="${proxyservlet.jar}" basedir="${build.classes}">
+ <patternset refid="proxyservlet.files"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.class-path}" value="${ais.client.jarname} ${servlet.jarname} ${xerces.jarname} ${xml-apis.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="Servlet Proxy"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${proxyservlet.jar}"/>
+ <param name="filename" value="${proxyservlet.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.adminconsole" depends="init, compile.adminconsole, createSplash.ais.splashscreens">
+ <mkdir dir="${build.lib}"/>
+ <!-- Copy "resource" files that go in the jar file. -->
+ <copy toDir="${build.classes}" preservelastmodified="true">
+ <fileset dir="${java.resource.dir}">
+ <include name="com/seagullsw/appinterface/server/admin/client/"/>
+ <include name="com/seagullsw/appinterface/server/*.jpg"/>
+ </fileset>
+ </copy>
+ <jar jarfile="${adminconsole.jar}" basedir="${build.classes}">
+ <patternset refid="adminconsole.files"/>
+ <patternset refid="devtools.framework.files"/>
+ <patternset refid="ais.client.files"/>
+ <patternset refid="appinterfaceserversettings.files"/>
+ <fileset refid="appinterface.baseplus.files"/>
+ <include name="com/seagullsw/appinterface/server/*.jpg"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.main-class}" value="com.seagullsw.appinterface.server.admin.client.AppInterfaceServerAdminUIClient"/>
+ <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${xerces.jarname} ${xml-apis.jarname} ${xalan.jarname} ${soap.jarname} ${activation.jarname} ${mail.jarname} ${commons-cli.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="Administrative Console"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${adminconsole.jar}"/>
+ <param name="filename" value="${adminconsole.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.javaconnectorgenerator" depends="init, compile.javaconnectorgenerator">
+ <mkdir dir="${build.lib}"/>
+ <!-- Copy "resource" files that go in the jar file. -->
+ <copy toDir="${build.classes}" preservelastmodified="true" filtering="true">
+ <fileset dir="${java.resource.dir}">
+ <include name="com/seagullsw/appinterface/tools/javaconnectorgenerator/"/>
+ </fileset>
+ </copy>
+ <jar jarfile="${javaconnectorgenerator.jar}" basedir="${build.classes}">
+ <patternset refid="javaconnectorgenerator.files"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.main-class}" value="com.seagullsw.appinterface.tools.javaconnectorgenerator.JavaConnectorGenerator"/>
+ <attribute name="${manifest.key.class-path}" value="${ais-tools.jarname} ${xml-apis.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="Java Connector Generator"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${javaconnectorgenerator.jar}"/>
+ <param name="filename" value="${javaconnectorgenerator.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.securitytoolkit" depends="init, compile.securitytoolkit">
+ <mkdir dir="${build.lib}"/>
+ <!-- Copy "resource" files that go in the jar file. -->
+ <copy toDir="${build.classes}" preservelastmodified="true" filtering="true">
+ <fileset dir="${java.resource.dir}">
+ <include name="com/seagullsw/appinterface/tools/security/"/>
+ </fileset>
+ </copy>
+ <jar jarfile="${securitytoolkit.jar}" basedir="${build.classes}">
+ <patternset refid="securitytoolkit.files"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.main-class}" value="com.seagullsw.appinterface.tools.security.SecurityToolkit"/>
+ <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${ais-tools.jarname} ${xml-apis.jarname} ${commons-lang.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="Security Toolkit"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${securitytoolkit.jar}"/>
+ <param name="filename" value="${securitytoolkit.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.ais-tools" depends="init, compile.devtools, createSplash.tools.splashscreens, compile.win32interface, compile.javatools">
+ <mkdir dir="${build.lib}"/>
+ <!-- Copy "resource" files that go in the jar file. -->
+ <copy toDir="${build.classes}" preservelastmodified="true">
+ <fileset dir="${java.resource.dir}">
+ <include name="com/seagullsw/appinterface/**/*.gif"/>
+ </fileset>
+ </copy>
+ <jar jarfile="${ais-tools.jar}" basedir="${build.classes}">
+ <patternset refid="devtools.files"/>
+ <patternset refid="adminconsole.files"/>
+ <fileset refid="appinterface.baseplus.files"/>
+ <patternset>
+ <include name="com/seagullsw/appinterface/**/*settings*/"/>
+ <include name="com/seagullsw/javax/swing/"/>
+ <!-- Not sure why this isn't getting included as part of uifacilities.files via appinterface.baseplus.files. -->
+ </patternset>
+ <include name="com/seagullsw/appinterface/tools/images/*.jpg"/>
+ <include name="com/seagullsw/appinterface/**/*.gif"/>
+ <patternset refid="javatools.files"/>
+ <patternset refid="win32interface.files"/>
+ <patternset refid="ais.client.files"/>
+ <fileset refid="xslt.files"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.main-class}" value="com.seagullsw.appinterface.tools.serverdef.DefinitionTool"/>
+ <attribute name="${manifest.key.class-path}" value="${ais-cobol.jarname} ${ais-cics.jarname} ${ais-ims.jarname} ${xerces.jarname} ${xml-apis.jarname} ${xalan.jarname} ${soap.jarname} ${activation.jarname} ${mail.jarname} ${jaxb.jarnames} ${commons-lang.jarname} ${extension.dir.name}/${j2se.tools.jarname} ${ais-tools.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="Tools"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${ais-tools.jar}"/>
+ <param name="filename" value="${ais-tools.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.ais-5250" depends="init, compile.hcbackend">
+ <mkdir dir="${build.lib}"/>
+ <jar jarfile="${ais-5250.jar}" basedir="${build.classes}">
+ <patternset refid="hcbackend.files"/>
+ <exclude name="com/seagullsw/appinterface/tools/"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${hsc.jarname} ${hscu.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="5250 Connector"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${ais-5250.jar}"/>
+ <param name="filename" value="${ais-5250.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.ais-3270" depends="init, compile.hcbackend">
+ <mkdir dir="${build.lib}"/>
+ <jar jarfile="${ais-3270.jar}" basedir="${build.classes}">
+ <patternset refid="hcbackend.files"/>
+ <exclude name="com/seagullsw/appinterface/tools/"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${hsc.jarname} ${hscu.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="3270 Connector"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${ais-3270.jar}"/>
+ <param name="filename" value="${ais-3270.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.ais-cobol" depends="init, compile.cobol">
+ <mkdir dir="${build.lib}"/>
+ <jar jarfile="${ais-cobol.jar}" basedir="${build.classes}">
+ <patternset refid="cobol.files"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${ais-cics.jarname} ${ais-ims.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="Cobol Connector"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${ais-cobol.jar}"/>
+ <param name="filename" value="${ais-cobol.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.ais-cics" depends="init, compile.cics">
+ <mkdir dir="${build.lib}"/>
+ <copy toDir="${build.classes}" preservelastmodified="true">
+ <fileset dir="${src.dir}">
+ <include name="com/seagullsw/**/jaxb.properties"/>
+ <include name="com/seagullsw/**/bgm.ser"/>
+ </fileset>
+ </copy>
+ <jar jarfile="${ais-cics.jar}" basedir="${build.classes}">
+ <patternset refid="cics.files"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${ais-cobol.jarname} ${extension.dir.name}/${ctgclient.jarname} ${commons-codec.jarname} ${commons-logging.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="CICS Connector"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${ais-cics.jar}"/>
+ <param name="filename" value="${ais-cics.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.ais-ims" depends="init, compile.IMSbackend">
+ <mkdir dir="${build.lib}"/>
+ <jar jarfile="${ais-ims.jar}" basedir="${build.classes}">
+ <patternset refid="ims.backend.files"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.class-path}" value="${ais-core.jarname} ${ais-cobol.jarname} ${imsico.jarname} ${imsico-connector.jarname} ${jaas.jarname} ${jta.jarname}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="IMS Connector"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${ais-ims.jar}"/>
+ <param name="filename" value="${ais-ims.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.hsc" depends="init, compile.hsc">
+ <mkdir dir="${build.lib}"/>
+ <jar jarfile="${hscu.jar}" basedir="${build.classes}">
+ <patternset refid="hsc.files"/>
+ <manifest>
+ <attribute name="Built-By" value="${user.name}"/>
+ <attribute name="${manifest.key.product}" value="${product.name}"/>
+ <attribute name="${manifest.key.component}" value="Host Session Connector"/>
+ <attribute name="${manifest.key.version}" value="${version}"/>
+ <attribute name="${manifest.key.build}" value="${build.id}"/>
+ <attribute name="${manifest.key.build-ts}" value="${BuildTimeStamp}"/>
+ </manifest>
+ </jar>
+ <antcall target="compute-checksum">
+ <param name="file" value="${hscu.jar}"/>
+ <param name="filename" value="${hscu.jarname}"/>
+ </antcall>
+ <echo level="info" message="Running RetroGuard..."/>
+ <java classname="RetroGuard" fork="yes">
+ <arg value="${hscu.jar}"/>
+ <arg value="${hsc.jar}"/>
+ <arg value="${obfuscate.script}"/>
+ <arg value="${obfuscate.log}"/>
+ <classpath>
+ <pathelement path="${retroguard.jar}"/>
+ </classpath>
+ </java>
+ <antcall target="compute-checksum">
+ <param name="file" value="${hsc.jar}"/>
+ <param name="filename" value="${hsc.jarname}"/>
+ </antcall>
+ </target>
+ <target name="jar.testbackend" depends="test.compile">
+ <jar jarfile="${build.lib}/ais-testbackend.jar" basedir="${test.bin}">
+ <include name="com/seagullsw/appinterface/server/backend/aistest/**"/>
+ <fileset dir="${src.test.dir}">
+ <include name="com/seagullsw/appinterface/server/backend/aistest/**/jaxb.properties"/>
+ <include name="com/seagullsw/appinterface/server/backend/aistest/**/bgm.ser"/>
+ </fileset>
+ </jar>
+ </target>
+ <!-- =================================================================== -->
+ <!-- Prepares the build directory -->
+ <!-- =================================================================== -->
+ <target name="prepare" depends="init">
+ <mkdir dir="${build.dir}"/>
+ <mkdir dir="${build.classes}"/>
+ </target>
+ <!-- =================================================================== -->
+ <!-- Cleans -->
+ <!-- =================================================================== -->
+ <target name="clean" description="Removes all the generated files and directories">
+ <delete dir="${build.dir}"/>
+ </target>
+ <target name="clean.jars">
+ <delete dir="${build.lib}"/>
+ </target>
+ <target name="clean.classes" description="Removes all .class files">
+ <delete dir="${build.classes}"/>
+ </target>
+ <!-- =================================================================== -->
+ <!-- Init -->
+ <!-- =================================================================== -->
+ <target name="init" depends="banner">
+ <tstamp>
+ <!-- The date/time patterns are as defined in the Java SimpleDateFormat class. -->
+ <format property="BuildTimeStamp" pattern="yyyy-MMMMM-dd HH:mm z"/>
+ </tstamp>
+ <filter token="PRODUCT" value="${product.name}"/>
+ <filter token="VERSION" value="${version}"/>
+ <filter token="BUILDID" value="${build.id}"/>
+ <filter token="BUILDTIMESTAMP" value="${BuildTimeStamp}"/>
+ <filter token="COPYRIGHT-1" value="${text.copyright.1}"/>
+ <filter token="COPYRIGHT-2" value="${text.copyright.2}"/>
+ </target>
+ <target name="banner" unless="banner-set">
+ <property name="logxsl-prop-sep" value="->"/>
+ <echo level="info" message="ant.file ${logxsl-prop-sep} ${ant.file}"/>
+ <echo level="info" message="ant.version ${logxsl-prop-sep} ${ant.version}"/>
+ <echo level="info" message="java.vm.version ${logxsl-prop-sep} ${ant.java.version}"/>
+ <echo level="info" message="java.version ${logxsl-prop-sep} ${java.version}"/>
+ <echo level="info" message="os.name ${logxsl-prop-sep} ${os.name}"/>
+ <echo level="info" message="Build ID: ${build.id}"/>
+ <property name="banner-set" value="true"/>
+ </target>
+ <!-- =================================================================== -->
+ <!-- Splash Screens -->
+ <!-- =================================================================== -->
+ <property name="internaldev.classes" value="${build.dir}/internaldev"/>
+ <property name="splash.src" value="${src.root.dir}/Build/splashscreen"/>
+ <property name="splash.dest" value="${build.dir}/splashscreens"/>
+ <property name="server.splashscreen.line-1" value="Application Interface Server"/>
+ <property name="tools.splashscreen.line-1" value="Transidiom Developer"/>
+ <!-- Task compile.splashScreenCreator -->
+ <target name="compile.splashScreenCreator">
+ <mkdir dir="${internaldev.classes}"/>
+ <javac srcdir="${src.test.dir}" destdir="${internaldev.classes}" debug="${compile.debug}">
+ <include name="com/seagullsw/internaldev/build/SplashscreenCreator.java"/>
+ </javac>
+ </target>
+ <!--
+ Run SplashscreenCreator program which takes a "vanilla" jpg plus
+ some text and creates a new "merged" jpg.
+ This is used by the createSplash.xxx.splashscreen targets.
+ -->
+ <target name="createSplash" depends="compile.splashScreenCreator">
+ <!-- java task: failonerror works only if fork is true -->
+ <java classname="com.seagullsw.internaldev.build.SplashscreenCreator" failonerror="true" fork="true">
+ <!-- <sysproperty key="com.seagullsw.debug" value="true"/> -->
+ <sysproperty key="com.seagullsw.quiet" value="false"/>
+ <sysproperty key="com.seagullsw.x" value="8"/>
+ <sysproperty key="com.seagullsw.y" value="196"/>
+ <sysproperty key="com.seagullsw.fontsize" value="11"/>
+ <sysproperty key="com.seagullsw.sourceScreenFile" value="${createSplash.sourceScreenFile}"/>
+ <sysproperty key="com.seagullsw.targetScreenFile" value="${createSplash.targetScreenFile}"/>
+ <sysproperty key="com.seagullsw.screenTextFile" value="${createSplash.screenTextFile}"/>
+ <classpath>
+ <pathelement location="${internaldev.classes}"/>
+ </classpath>
+ </java>
+ </target>
+ <!-- Create AIS splashscreens -->
+ <target name="createSplash.ais.splashscreens" depends="init">
+ <filter token="SERVER.SPLASHSCREEN.LINE-1" value="${server.splashscreen.line-1}"/>
+ <!-- Line 2 is in the template and uses the Version, Build and Build date tokens. -->
+ <filter token="SERVER.SPLASHSCREEN.LINE-3" value="${text.copyright.1}"/>
+ <filter token="SERVER.SPLASHSCREEN.LINE-4" value="${text.copyright.2}"/>
+ <mkdir dir="${splash.dest}"/>
+ <copy file="${splash.src}/splashscreen-template-server.txt" tofile="${splash.dest}/splashscreen-server.txt" overwrite="true" filtering="true"/>
+ <antcall target="createSplash">
+ <param name="createSplash.sourceScreenFile" value="${splash.src}/BasicSplashScreen.jpg"/>
+ <param name="createSplash.screenTextFile" value="${splash.dest}/splashscreen-server.txt"/>
+ <param name="createSplash.targetScreenFile" value="${splash.dest}/ServerSplashScreen.jpg"/>
+ </antcall>
+ <!-- Copy the splash to the AIS and SAC class path -->
+ <copy file="${splash.dest}/ServerSplashScreen.jpg" tofile="${build.classes}/com/seagullsw/appinterface/server/ServerSessionSplashScreen.jpg" overwrite="yes"/>
+ </target>
+ <!-- Create Tools splashscreens -->
+ <target name="createSplash.tools.splashscreens" depends="init">
+ <filter token="TOOLS.SPLASHSCREEN.LINE-1" value="${tools.splashscreen.line-1}"/>
+ <!-- Line 2 is in the template and uses the Version, Build and Build date tokens. -->
+ <filter token="TOOLS.SPLASHSCREEN.LINE-3" value="${text.copyright.1}"/>
+ <filter token="TOOLS.SPLASHSCREEN.LINE-4" value="${text.copyright.2}"/>
+ <mkdir dir="${splash.dest}"/>
+ <copy file="${splash.src}/splashscreen-template-developer.txt" tofile="${splash.dest}/splashscreen-developer.txt" overwrite="true" filtering="true"/>
+ <antcall target="createSplash">
+ <param name="createSplash.sourceScreenFile" value="${splash.src}/BasicSplashScreen.jpg"/>
+ <param name="createSplash.screenTextFile" value="${splash.dest}/splashscreen-developer.txt"/>
+ <param name="createSplash.targetScreenFile" value="${splash.dest}/ToolSessionSplashScreen.jpg"/>
+ </antcall>
+ <!-- Copy the splash to the Tools class path -->
+ <copy file="${splash.dest}/ToolSessionSplashScreen.jpg" tofile="${build.classes}/com/seagullsw/appinterface/tools/images/ToolSessionSplashScreen.jpg" overwrite="yes"/>
+ </target>
+ <!-- =================================================================== -->
+ <!-- Javadoc for client API -->
+ <!-- =================================================================== -->
+ <target name="javadoc_check.ais.client">
+ <uptodate property="ais.client.javadoc.notrequired" targetfile="${ais.client.dist.javadoc}/packages.html">
+ <srcfiles dir="${src.dir}">
+ <patternset refid="ais.client.files"/>
+ </srcfiles>
+ </uptodate>
+ </target>
+ <target name="javadoc.ais.client" depends="prepare, javadoc_check.ais.client" unless="ais.client.javadoc.notrequired">
+ <delete dir="${ais.client.dist.javadoc}" includeEmptyDirs="true" quiet="true"/>
+ <mkdir dir="${ais.client.dist.javadoc}"/>
+ <property name="basic-header" value="${Name}&#x2122;, AIS Client"/>
+ <property name="header+version" value="${basic-header}, v${version}"/>
+ <property name="win-title" value="${header+version} API Specification"/>
+ <property name="doc-title" value="${header+version}&lt;br/&gt;API Specification"/>
+ <javadoc packagenames="com.seagullsw.appinterface.client, com.seagullsw.appinterface.client.java, com.seagullsw.appinterface.client.ibmmq, com.seagullsw.appinterface.comm.ibmmq" sourcepath="${src.dir}" destdir="${ais.client.dist.javadoc}" windowtitle="${win-title}" doctitle="${doc-title}" header="${basic-header}" bottom="&lt;font size=&quot;-1&quot;&gt;${Name} is a trademark or registered trademarks of Seagull Holding NV in the US and other countries.&lt;br/&gt;Copyright &#169; 1993 - 2003 Seagull Business Software Ireland Ltd. All Rights Reserved.&lt;/font&gt;" author="false" version="true" use="true">
+ <classpath>
+ <path refid="ais.classpath"/>
+ </classpath>
+ <!-- The following group elements do not seem to work. -->
+ <group title="Client" packages="com.seagullsw.appinterface.client, com.seagullsw.appinterface.client.java"/>
+ <group title="IBM MQ Series Client" packages="com.seagullsw.appinterface.client.ibmmq, com.seagullsw.appinterface.comm.ibmmq"/>
+ <link href="${javadoc.j2se.link}"/>
+ </javadoc>
+ </target>
+ <target name="javadoc_check.ais.adminclient">
+ <uptodate property="ais.adminclient.javadoc.notrequired" targetfile="${ais.adminclient.dist.javadoc}/packages.html">
+ <srcfiles dir="${src.dir}">
+ <patternset refid="ais.adminclient.files"/>
+ </srcfiles>
+ </uptodate>
+ </target>
+ <target name="javadoc.ais.adminclient" depends="prepare, javadoc_check.ais.adminclient" unless="ais.adminclient.javadoc.notrequired">
+ <delete dir="${ais.adminclient.dist.javadoc}" includeEmptyDirs="true" quiet="true"/>
+ <mkdir dir="${ais.adminclient.dist.javadoc}"/>
+ <property name="basic-header" value="${Name}&#x2122;, AIS Admin Client"/>
+ <property name="header+version" value="${basic-header}, v${version}"/>
+ <property name="win-title" value="${header+version} API Specification"/>
+ <property name="doc-title" value="${header+version}&lt;br/&gt;API Specification"/>
+ <javadoc packagenames="com.seagullsw.appinterface.server.admin" sourcepath="${src.dir}" destdir="${ais.adminclient.dist.javadoc}" windowtitle="${win-title}" doctitle="${doc-title}" header="${basic-header}" bottom="&lt;font size=&quot;-1&quot;&gt;${Name} is a trademark or registered trademarks of Seagull Holding NV in the US and other countries.&lt;br/&gt;Copyright &#169; 1993 - 2003 Seagull Business Software Ireland Ltd. All Rights Reserved.&lt;/font&gt;" author="false" version="true" use="true">
+ <classpath>
+ <path refid="ais.classpath"/>
+ </classpath>
+ <!-- The following group elements do not seem to work. -->
+ <group title="Client" packages="com.seagullsw.appinterface.server.admin"/>
+ <link href="${javadoc.j2se.link}"/>
+ </javadoc>
+ </target>
+ <!-- =================================================================== -->
+ <!-- Distribution targets -->
+ <!-- =================================================================== -->
+ <target name="dist" depends="dist.ais.core, dist.ais.client, dist.aisUNIX, dist.proxyservlet, dist.transidiomcentral, dist.devtools, dist.docs" description="Creates the distribution in ${build.dist}"/>
+ <property name="ais.dist" value="${build.dist}/server"/>
+ <property name="aisUNIX.dist" value="${build.dist}/server-UNIX"/>
+ <property name="ais.client.dist" value="${build.dist}/client/java"/>
+ <property name="proxyservlet.dist" value="${build.dist}/server/servlet"/>
+ <property name="devtools.dist" value="${build.dist}/tools"/>
+ <property name="transidiomcentral.dist" value="${build.dist}/TransidiomCentral"/>
+ <!-- copy 3rd party jar files - a dist "subroutine". -->
+ <!-- Common files to the AIS and Tools? GaryG 2003-04-03 -->
+ <target name="copy3rdPartyJars">
+ <copy file="${xerces.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${xml-apis.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${xalan.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${soap.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${activation.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${mail.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${commons-collections.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${commons-lang.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${commons-codec.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${commons-logging.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${commons-httpclient.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${commons-pool.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${commons-cli.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jakarta-oro.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb1.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb2.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb3.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb4.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb5.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb6.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb7.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jms.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${concurrent.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaas.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${imsico.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${imsico-connector.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jta.jar}" todir="${copy3rdPartyJars.dist.lib}" preservelastmodified="true"/>
+ </target>
+ <!-- Java Client -->
+ <property name="ais.client.dist.javadoc" value="${ais.client.dist}/docs/api"/>
+ <property name="ais.client.dist.lib" value="${ais.client.dist}/lib"/>
+ <property name="ais.client.dist.mq" value="${ais.client.dist}/mq"/>
+ <property name="ais.adminclient.dist.javadoc" value="${ais.client.dist}/admin/docs/api"/>
+ <property name="ais.adminclient.dist.sfd" value="${ais.client.dist}/admin/sfd"/>
+ <!-- dist.ais.client -->
+ <target name="dist.ais.client" depends="jar.ais.client, jar.ais.adminclient, javadoc.ais.client, javadoc.ais.adminclient">
+ <mkdir dir="${ais.client.dist}"/>
+ <mkdir dir="${ais.client.dist.javadoc}"/>
+ <mkdir dir="${ais.client.dist.lib}"/>
+ <mkdir dir="${ais.client.dist.mq}"/>
+ <mkdir dir="${ais.adminclient.dist.javadoc}"/>
+ <mkdir dir="${ais.adminclient.dist.sfd}"/>
+ <copy file="${ais.client.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-adminclient.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${xerces.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${xml-apis.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${commons-lang.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb1.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb2.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb3.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb4.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb5.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb6.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb7.jar}" todir="${ais.client.dist.lib}" preservelastmodified="true"/>
+ <copy file="${root.dir}/mq/MQClientConnection.properties" todir="${ais.client.dist.mq}" preservelastmodified="true"/>
+ <copy todir="${ais.adminclient.dist.sfd}" preservelastmodified="true">
+ <fileset dir="${src.root.dir}/ServerAdminFunctions/InterfaceSchemas"/>
+ </copy>
+ </target>
+ <!-- AIS -->
+ <property name="ais.dist.config" value="${ais.dist}/config"/>
+ <property name="ais.dist.config.copy" value="${ais.dist}/config-default"/>
+ <property name="ais.dist.log" value="${ais.dist.config}/log"/>
+ <property name="ais.dist.transform" value="${ais.dist.config}/transform"/>
+ <property name="ais.dist.lib" value="${ais.dist}/lib"/>
+ <property name="ais.dist.lib.ext" value="${ais.dist.lib}/${extension.dir.name}"/>
+ <property name="ais.dist.mq" value="${ais.dist}/mq"/>
+ <property name="ais.dist.sys" value="${ais.dist}/system"/>
+ <property name="ais.dist.sysdef" value="${ais.dist.sys}/defaults"/>
+ <property name="root.serverSettings" value="${root.dir}/AlternativeServerSettings"/>
+ <property name="root.toolSettings" value="${root.dir}/AlternativeToolSettings"/>
+ <!-- dist.ais.core -->
+ <target name="dist.ais.core" depends="init, jar.ais-core, jar.ais-tools, jar.ais-5250, jar.ais-3270, jar.ais-cobol, jar.ais-cics, jar.ais-ims, jar.hsc, jar.adminconsole, javadoc.openbackend">
+ <mkdir dir="${ais.dist}"/>
+ <mkdir dir="${ais.dist.lib}"/>
+ <mkdir dir="${ais.dist.lib.ext}"/>
+ <mkdir dir="${ais.dist.sys}"/>
+ <mkdir dir="${ais.dist.mq}"/>
+ <copy file="${ais-core.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-5250.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-3270.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-cobol.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-cics.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-ims.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
+ <copy file="${hsc.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
+ <copy file="${adminconsole.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
+ <antcall target="copy3rdPartyJars">
+ <param name="copy3rdPartyJars.dist.lib" value="${ais.dist.lib}"/>
+ </antcall>
+ <!-- For SCT -->
+ <copy file="${ais-tools.jar}" todir="${ais.dist.lib}" preservelastmodified="true"/>
+ <copy file="${root.dir}/ToolUserSettings.cfg" todir="${ais.dist}" filtering="true"/>
+ <copy file="${root.dir}/start-ais.bat" todir="${ais.dist}" preservelastmodified="true"/>
+ <copy file="${root.dir}/start-ais-mq.bat" todir="${ais.dist}" preservelastmodified="true"/>
+ <copy file="${root.dir}/stop-ais.bat" todir="${ais.dist}" preservelastmodified="true"/>
+ <copy file="${root.dir.server}/ServerSettings.cfg" todir="${ais.dist}" preservelastmodified="true"/>
+ <copy file="${root.dir}/ServerBackEndSettings.cfg" todir="${ais.dist}" preservelastmodified="true"/>
+ <copy file="${root.serverSettings}/ServerDebugSettings.cfg" todir="${ais.dist.sys}" filtering="true"/>
+ <copy file="${root.serverSettings}/ServerDeveloperSettings.cfg" todir="${ais.dist.sys}" filtering="true"/>
+ <copy file="${root.serverSettings}/ServerInstallationSettings.cfg" todir="${ais.dist.sys}" filtering="true"/>
+ <copy file="${root.dir.sys}/ToolDebugSettings.cfg" todir="${ais.dist.sys}" filtering="true"/>
+ <copy todir="${ais.dist.sys}/AdminFunctionDefinitions" preservelastmodified="true">
+ <fileset dir="${src.root.dir}/ServerAdminFunctions/MappingSchemas"/>
+ </copy>
+ <copy todir="${ais.dist.transform}" preservelastmodified="true">
+ <fileset dir="${root.dir.server-transform}"/>
+ </copy>
+ <copy todir="${ais.dist.config}/comm" preservelastmodified="true">
+ <fileset dir="${root.dir.server-config}/comm"/>
+ </copy>
+ <copy todir="${ais.dist.config.copy}" preservelastmodified="true">
+ <fileset dir="${ais.dist.config}"/>
+ </copy>
+ <copy file="${root.dir.server-log}/log-category.properties" todir="${ais.dist.log}" preservelastmodified="true"/>
+ <copy file="${root.dir.server-log}/log-style.properties" todir="${ais.dist.log}" preservelastmodified="true"/>
+ <!-- Tools files -->
+ <copy file="${root.toolSettings}/ToolInstallationSettings-All.cfg" tofile="${ais.dist.sys}/ToolInstallationSettings.cfg" filtering="true"/>
+ <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC.cfg" todir="${ais.dist.sys}" filtering="true"/>
+ <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC3270Only.cfg" todir="${ais.dist.sys}" filtering="true"/>
+ <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC5250Only.cfg" todir="${ais.dist.sys}" filtering="true"/>
+ <copy file="${root.toolSettings}/SCTToolInstallationSettings-CICSOnly.cfg" todir="${ais.dist.sys}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/AppInterfaceTester-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/ClientControlled3270ServerSettings-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/ClientControlled5250ServerSettings-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/DefinitionTool-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/SEAGULLProject.dir" todir="${ais.dist.sysdef}"/>
+ <copy file="${root.dir.sysdef}/ServerControlled3270ServerSettings-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/ServerControlled5250ServerSettings-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/ServerOptions-DefaultSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/ServerSettings-Skeleton.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/WorkingSetSettings.cfg" todir="${ais.dist.sysdef}" filtering="true"/>
+ <!-- Java Connectors -->
+ <mkdir dir="${ais.dist}/JavaConnectors/Classes"/>
+ </target>
+ <!-- AIS UNIX-specific -->
+ <property name="aisUNIX.dist.config" value="${aisUNIX.dist}/config"/>
+ <property name="aisUNIX.dist.log" value="${aisUNIX.dist.config}/log"/>
+ <property name="aisUNIX.dist.lib" value="${aisUNIX.dist}/lib"/>
+ <property name="aisUNIX.dist.mq" value="${aisUNIX.dist}/mq"/>
+ <property name="aisUNIX.dist.sys" value="${aisUNIX.dist}/system"/>
+ <target name="dist.aisUNIX" depends="init, dist.ais.core, jar.adminconsole">
+ <mkdir dir="${aisUNIX.dist}"/>
+ <mkdir dir="${aisUNIX.dist.lib}"/>
+ <mkdir dir="${aisUNIX.dist.sys}"/>
+ <mkdir dir="${aisUNIX.dist.mq}"/>
+ <copy file="${ais-core.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-5250.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-3270.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-cobol.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-cics.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-ims.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
+ <copy file="${adminconsole.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
+ <copy file="${hsc.jar}" todir="${aisUNIX.dist.lib}" preservelastmodified="true"/>
+ <antcall target="copy3rdPartyJars">
+ <param name="copy3rdPartyJars.dist.lib" value="${aisUNIX.dist.lib}"/>
+ </antcall>
+ <copy file="${root.dir}/UNIXServerFiles/start-ais.sh" todir="${aisUNIX.dist}" preservelastmodified="true"/>
+ <copy file="${root.dir}/UNIXServerFiles/start-ais-mq.sh" todir="${aisUNIX.dist}" preservelastmodified="true"/>
+ <copy file="${root.dir}/UNIXServerFiles/stop-ais.sh" todir="${aisUNIX.dist}" preservelastmodified="true"/>
+ <copy file="${root.dir.server}/ServerSettings.cfg" todir="${aisUNIX.dist}" preservelastmodified="true"/>
+ <copy file="${root.dir}/ServerBackEndSettings.cfg" todir="${aisUNIX.dist}" preservelastmodified="true"/>
+ <copy file="${root.serverSettings}/ServerDebugSettings.cfg" todir="${aisUNIX.dist.sys}" filtering="true"/>
+ <copy file="${root.dir}/UNIXServerFiles/ServerInstallationSettings.cfg" todir="${aisUNIX.dist.sys}" filtering="true"/>
+ <copy todir="${aisUNIX.dist.sys}/AdminFunctionDefinitions" preservelastmodified="true">
+ <fileset dir="${src.root.dir}/ServerAdminFunctions/MappingSchemas"/>
+ </copy>
+ <copy todir="${aisUNIX.dist}/config/transform" preservelastmodified="true">
+ <fileset dir="${root.dir}/server/config/transform"/>
+ </copy>
+ <copy file="${root.dir.server-log}/log-category.properties" todir="${aisUNIX.dist.log}"/>
+ <copy file="${root.dir.server-log}/log-style.properties" todir="${aisUNIX.dist.log}"/>
+ </target>
+ <!-- Proxy Servlet -->
+ <property name="proxyservlet.dist.lib" value="${proxyservlet.dist}/lib"/>
+ <target name="dist.proxyservlet" depends="jar.proxyservlet, jar.ais.client">
+ <copy file="${proxyservlet.jar}" todir="${proxyservlet.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais.client.jar}" todir="${proxyservlet.dist.lib}" preservelastmodified="true"/>
+ <copy file="${xerces.jar}" todir="${proxyservlet.dist.lib}" preservelastmodified="true"/>
+ <copy file="${xml-apis.jar}" todir="${proxyservlet.dist.lib}" preservelastmodified="true"/>
+ <copy file="${root.dir}/ServletConfigFiles/AISProxyServletReadme.txt" todir="${proxyservlet.dist}" preservelastmodified="true"/>
+ <copy file="${root.dir}/ServletConfigFiles/web.xml" todir="${proxyservlet.dist}" preservelastmodified="true"/>
+ <copy file="${doc.dir}/Transidiom HTTPS Support.doc" todir="${proxyservlet.dist}" preservelastmodified="true"/>
+ <copy file="${doc.dir}/Transidiom HTTP Requests Redirection on IIS.doc" todir="${proxyservlet.dist}" preservelastmodified="true"/>
+ </target>
+ <!-- DevTools -->
+ <property name="devtools.dist.config" value="${devtools.dist}/config"/>
+ <property name="devtools.dist.log" value="${devtools.dist.config}/log"/>
+ <property name="devtools.dist.lib" value="${devtools.dist}/lib"/>
+ <property name="devtools.dist.sys" value="${devtools.dist}/system"/>
+ <property name="devtools.dist.sysdef" value="${devtools.dist.sys}/defaults"/>
+ <target name="dist.devtools" depends="init, jar.ais-core, jar.ais-tools">
+ <mkdir dir="${devtools.dist}"/>
+ <mkdir dir="${devtools.dist.lib}"/>
+ <mkdir dir="${devtools.dist.sys}"/>
+ <mkdir dir="${devtools.dist.sysdef}"/>
+ <mkdir dir="${devtools.dist.log}"/>
+ <copy file="${ais-tools.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-core.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-5250.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-3270.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-cobol.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-cics.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-ims.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais.client.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-adminclient.jar}" todir="${devtools.dist.lib}" preservelastmodified="true"/>
+ <antcall target="copy3rdPartyJars">
+ <param name="copy3rdPartyJars.dist.lib" value="${devtools.dist.lib}"/>
+ </antcall>
+ <!-- Root -->
+ <copy file="${root.dir}/Direct Publish.bat" todir="${devtools.dist}"/>
+ <copy file="${root.dir}/DirectPublish.args" todir="${devtools.dist}"/>
+ <copy file="${root.dir}/Interface Definition Tool.bat" todir="${devtools.dist}"/>
+ <copy file="${root.dir}/CICS Connector Builder.bat" todir="${devtools.dist}"/>
+ <copy file="${root.dir}/IMS Connector Builder.bat" todir="${devtools.dist}"/>
+ <copy file="${root.dir}/Interface Function Tester.bat" todir="${devtools.dist}"/>
+ <copy file="${root.dir}/ToolUserSettings.cfg" todir="${devtools.dist}" filtering="true"/>
+ <copy file="${binary.root.dir}/Java/Win32/Bin/Win32RegistryInterface.dll" todir="${devtools.dist}" preservelastmodified="true"/>
+ <!-- system (files are in alpha order here) -->
+ <copy file="${root.toolSettings}/DFPToolInstallationSettings-HC.cfg" tofile="${devtools.dist.sys}/DFPToolInstallationSettings.cfg" filtering="true"/>
+ <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC.cfg" todir="${devtools.dist.sys}" filtering="true"/>
+ <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC3270Only.cfg" todir="${devtools.dist.sys}" filtering="true"/>
+ <copy file="${root.toolSettings}/SCTToolInstallationSettings-HC5250Only.cfg" todir="${devtools.dist.sys}" filtering="true"/>
+ <copy file="${root.toolSettings}/SCTToolInstallationSettings-CICSOnly.cfg" todir="${devtools.dist.sys}" filtering="true"/>
+ <copy file="${root.dir.sys}/ToolDebugSettings.cfg" todir="${devtools.dist.sys}" filtering="true"/>
+ <copy file="${root.toolSettings}/ToolInstallationSettings-All.cfg" tofile="${devtools.dist.sys}/ToolInstallationSettings.cfg" filtering="true"/>
+ <copy file="${root.toolSettings}/ToolInstallationSettings-DefToolHC.cfg" todir="${devtools.dist.sys}" filtering="true"/>
+ <copy file="${root.toolSettings}/ToolInstallationSettings-DefToolHC3270Only.cfg" todir="${devtools.dist.sys}" filtering="true"/>
+ <copy file="${root.toolSettings}/ToolInstallationSettings-DefToolHC5250Only.cfg" todir="${devtools.dist.sys}" filtering="true"/>
+ <copy file="${root.toolSettings}/ToolInstallationSettings-DefToolCICSOnly.cfg" todir="${devtools.dist.sys}" filtering="true"/>
+ <copy file="${root.toolSettings}/ToolInstallationSettings-DefToolIMSOnly.cfg" todir="${devtools.dist.sys}" filtering="true"/>
+ <!-- system defaults -->
+ <copy file="${root.dir.sysdef}/AppInterfaceTester-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/ClientControlled3270ServerSettings-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/ClientControlled5250ServerSettings-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/DefinitionTool-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/SEAGULLProject.dir" todir="${devtools.dist.sysdef}"/>
+ <copy file="${root.dir.sysdef}/ServerControlled3270ServerSettings-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/ServerControlled5250ServerSettings-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/ServerOptions-DefaultSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/ServerSettings-Skeleton.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.sysdef}/WorkingSetSettings.cfg" todir="${devtools.dist.sysdef}" filtering="true"/>
+ <copy file="${root.dir.tools-log}/log-category.properties" todir="${devtools.dist.log}" preservelastmodified="true"/>
+ <copy file="${root.dir.tools-log}/log-style.properties" todir="${devtools.dist.log}" preservelastmodified="true"/>
+ </target>
+ <!-- AIS Central -->
+ <property name="transidiomcentral.dist.lib" value="${transidiomcentral.dist}/lib"/>
+ <target name="dist.transidiomcentral" depends="init, jar.ais-core, jar.ais-tools, jar.javaconnectorgenerator, jar.securitytoolkit">
+ <mkdir dir="${transidiomcentral.dist}"/>
+ <mkdir dir="${transidiomcentral.dist.lib}"/>
+ <copy file="${ais-core.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-5250.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-3270.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-cobol.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-cics.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-ims.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais-tools.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${ais.client.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${securitytoolkit.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${javaconnectorgenerator.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${commons-codec.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${commons-lang.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${xerces.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${xalan.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${xml-apis.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb1.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb2.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb3.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb4.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb5.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb6.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ <copy file="${jaxb7.jar}" todir="${transidiomcentral.dist.lib}" preservelastmodified="true"/>
+ </target>
+ <!-- User Docs -->
+ <target name="dist.docs">
+ <mkdir dir="${build.dist}/docs"/>
+ <copy todir="${build.dist}/docs">
+ <fileset dir="${doc.dir}">
+ <exclude name="Transidiom HTTP*.doc"/>
+ </fileset>
+ </copy>
+ </target>
+ <!-- =================================================================== -->
+ <!-- Javadoc for open back-end API -->
+ <!-- =================================================================== -->
+ <property name="ais.dist.javadoc" value="${ais.dist}/JavaConnectors/Documentation/JavaDoc"/>
+ <target name="javadoc.openbackend" depends="compile.doclet">
+ <delete dir="${ais.dist.javadoc}" includeEmptyDirs="true" quiet="true"/>
+ <mkdir dir="${ais.dist.javadoc}"/>
+ <property name="basic-header" value="${Name}&#x2122;, AIS Java Connector"/>
+ <property name="header+version" value="${basic-header}, v${version}"/>
+ <property name="win-title" value="${header+version} API Specification"/>
+ <property name="doc-title" value="${header+version}&lt;br/&gt;API Specification"/>
+ <javadoc sourcepath="${src.dir}" destdir="${ais.dist.javadoc}" windowtitle="${win-title}" doctitle="${doc-title}" header="${basic-header}" bottom="&lt;font size=&quot;-1&quot;&gt;${Name} is a trademark or registered trademarks of Seagull Holding NV in the US and other countries.&lt;br/&gt;Copyright &#169; 1993 - 2003 Seagull Business Software Ireland Ltd. All Rights Reserved.&lt;/font&gt;" author="false" version="true" use="true" doclet="com.seagullsw.internaldev.tools.apidoclet.standard.Standard" docletpath="${build.classes};${java.resource.dir}">
+ <!-- I don't understand it, but if I leave off the ${src.dir} below, it doesn't work. -->
+ <source file="${src.dir}/com/seagullsw/appinterface/server/backend/BackEnd.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/server/backend/BackEndInfo.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/server/backend/BackEndHandler.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/server/backend/BackEndSettings.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/server/backend/Callback.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/server/backend/ClientSession.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/server/backend/InvocationContext.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/AggregateModel.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/AppInterfaceRuntimeException.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/DataElementModel.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/FieldModel.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/IllegalElementException.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/IllegalPathException.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/ModelElement.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/SequenceModel.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/StructureModel.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/data/Aggregate.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/data/DataElement.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/data/DataElementList.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/data/Field.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/data/Sequence.java"/>
+ <source file="${src.dir}/com/seagullsw/appinterface/model/data/Structure.java"/>
+ <classpath>
+ <path refid="ais.classpath"/>
+ </classpath>
+ <link href="http://java.sun.com/products/jdk/1.3.1/docs/api/"/>
+ </javadoc>
+ </target>
+ <!-- VERIFY -->
+ <path id="path.AntTasks">
+ <pathelement location="${junit.jar}"/>
+ <pathelement location="${commons-cli.jar}"/>
+ <pathelement location="${commons-httpclient.jar}"/>
+ <pathelement location="${build.classes}"/>
+ <pathelement location="${internaldev.classes}"/>
+ </path>
+ <target name="build.AntTasks">
+ <mkdir dir="${internaldev.classes}"/>
+ <javac srcdir="${src.test.dir}" destdir="${internaldev.classes}" debug="${compile.debug}" classpathref="path.AntTasks">
+ <include name="com/seagullsw/internaldev/build/JarFileVerifier.java"/>
+ <include name="com/seagullsw/internaldev/build/JarFileVerifierTask.java"/>
+ <include name="com/seagullsw/internaldev/build/IsUrlOpen.java"/>
+ <include name="com/seagullsw/internaldev/build/IsUrlOpenTask.java"/>
+ </javac>
+ </target>
+ <target name="declare.AntTasks" depends="build.AntTasks">
+ <taskdef name="verifyjar" classname="com.seagullsw.internaldev.build.JarFileVerifierTask" classpathref="path.AntTasks"/>
+ <taskdef name="isUrlOpen" classname="com.seagullsw.internaldev.build.IsUrlOpenTask" classpathref="path.AntTasks"/>
+ </target>
+ <target name="prepare.test.ext">
+ <mkdir dir="${test.lib}"/>
+ <delete dir="${test.lib.ext}"/>
+ <mkdir dir="${test.lib.ext}"/>
+ </target>
+ <target name="verify.ais.jar" depends="declare.AntTasks, prepare.test.ext">
+ <mkdir dir="${test.fdef}"/>
+ <copy file="${goXMLEngine.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <copy file="${goXMLResource.zip}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <copy file="${jdom.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <copy file="${ibm.mq.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <copy file="${ibm.mq.connector.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <copy file="${ibm.mq.jta.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <verifyjar file="${ais-core.jar}" verbose="false" debug="false">
+ <classpath>
+ <pathelement location="${ais.dist.lib}"/>
+ <pathelement location="${ais.dist.lib.ext}"/>
+ <pathelement location="${test.lib}"/>
+ </classpath>
+ </verifyjar>
+ <delete dir="${test.lib.ext}"/>
+ <delete dir="${test.fdef}"/>
+ </target>
+ <target name="verify.client.jar" depends="declare.AntTasks, prepare.test.ext">
+ <copy file="${ibm.mq.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <copy file="${jms.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <copy file="${mail.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <copy file="${soap.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <verifyjar file="${ais.client.jar}" verbose="false" debug="false">
+ <classpath>
+ <pathelement location="${ais.client.dist.lib}"/>
+ <pathelement location="${test.lib.ext}"/>
+ </classpath>
+ </verifyjar>
+ <delete dir="${test.lib.ext}"/>
+ </target>
+ <target name="verify.5250.jar" depends="declare.AntTasks">
+ <verifyjar file="${ais-5250.jar}" ignoreUnresolved="true" verbose="false" debug="false">
+ <classpath location="${ais.dist.lib}"/>
+ </verifyjar>
+ </target>
+ <target name="verify.3270.jar" depends="declare.AntTasks">
+ <verifyjar file="${ais-3270.jar}" ignoreUnresolved="true" verbose="false" debug="false">
+ <classpath location="${ais.dist.lib}"/>
+ </verifyjar>
+ </target>
+ <target name="verify.cobol.jar" depends="declare.AntTasks">
+ <verifyjar file="${ais-cobol.jar}" verbose="false" debug="false">
+ <classpath location="${ais.dist.lib}"/>
+ </verifyjar>
+ </target>
+ <target name="verify.cics.jar" depends="declare.AntTasks, prepare.test.ext">
+ <copy file="${ctgclient.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <verifyjar file="${ais-cics.jar}" verbose="false" debug="false">
+ <classpath location="${ais.dist.lib}"/>
+ <classpath location="${test.lib}"/>
+ </verifyjar>
+ <delete dir="${test.lib.ext}"/>
+ </target>
+ <target name="verify.ims.jar" depends="declare.AntTasks">
+ <verifyjar file="${ais-ims.jar}" verbose="false" debug="false">
+ <classpath location="${ais.dist.lib}"/>
+ </verifyjar>
+ </target>
+ <target name="verify.adminclient.jar" depends="declare.AntTasks">
+ <verifyjar file="${ais-adminclient.jar}" verbose="false" debug="false">
+ <classpath location="${devtools.dist.lib}"/>
+ </verifyjar>
+ </target>
+ <target name="verify.proxyservlet.jar" depends="declare.AntTasks">
+ <verifyjar file="${proxyservlet.jar}" verbose="false" debug="false">
+ <classpath>
+ <pathelement location="${proxyservlet.dist.lib}"/>
+ <pathelement location="${servlet.dir}"/>
+ </classpath>
+ </verifyjar>
+ </target>
+ <target name="verify.adminconsole.jar" depends="declare.AntTasks">
+ <verifyjar file="${adminconsole.jar}" verbose="false" debug="false">
+ <classpath location="${ais.dist.lib}"/>
+ </verifyjar>
+ </target>
+ <target name="verify.javaconnectorgenerator.jar" depends="declare.AntTasks">
+ <verifyjar file="${javaconnectorgenerator.jar}" verbose="false" debug="false">
+ <classpath location="${devtools.dist.lib}"/>
+ </verifyjar>
+ </target>
+ <target name="verify.securitytoolkit.jar" depends="declare.AntTasks">
+ <verifyjar file="${securitytoolkit.jar}" verbose="false" debug="false">
+ <classpath location="${devtools.dist.lib}"/>
+ </verifyjar>
+ </target>
+ <target name="verify.tools.jar" depends="declare.AntTasks, prepare.test.ext">
+ <copy file="${j2se.tools.jar}" todir="${test.lib.ext}" preservelastmodified="true"/>
+ <verifyjar file="${ais-tools.jar}" verbose="false" debug="false">
+ <classpath location="${devtools.dist.lib}"/>
+ <classpath location="${test.lib}"/>
+ </verifyjar>
+ <delete dir="${test.lib.ext}"/>
+ </target>
+ <target name="verify.gwhsc.jar" depends="declare.AntTasks">
+ <verifyjar file="${hsc.jar}" verbose="false" debug="false"/>
+ </target>
+ <target name="verify.gwhscu.jar" depends="declare.AntTasks">
+ <verifyjar file="${hscu.jar}" verbose="false" debug="false"/>
+ </target>
+ <target name="verify.xml" depends="banner">
+ <!-- Only check for well-formed XML here. -->
+ <xmlvalidate lenient="yes" warn="yes">
+ <fileset dir="${build.dist}" includes="**/*.xml"/>
+ <fileset dir="${build.dist}" includes="**/*.cfg"/>
+ <fileset dir="${build.dist}" includes="**/*.sfd"/>
+ <fileset dir="${build.dist}" includes="**/*.sjcd"/>
+ <fileset dir="${build.dist}" includes="**/*.sfmd"/>
+ <fileset dir="${build.dist}" includes="**/*.xsd"/>
+ <fileset dir="${build.dist}" includes="**/*.xsl"/>
+ </xmlvalidate>
+ </target>
+ <target name="verify" description="Verifies the build by performing a load tests on jar files (does not trigger the jar dependencies.)" depends="banner, verify.ais.jar, verify.client.jar, verify.5250.jar, verify.3270.jar, verify.cobol.jar, verify.cics.jar, verify.ims.jar, verify.adminclient.jar, verify.proxyservlet.jar, verify.adminconsole.jar, verify.javaconnectorgenerator.jar, verify.securitytoolkit.jar, verify.tools.jar, verify.gwhsc.jar, verify.gwhscu.jar, verify.xml"/>
+ <!-- End VERIFY targets -->
+ <!-- TEST TARGETS -->
+ <target name="junit_check">
+ <available classname="junit.framework.Test" property="junit.present"/>
+ <fail message="JUnit cannot be found." unless="junit.present"/>
+ </target>
+ <property name="test" value="${build.dir}/test"/>
+ <property name="test.bin" value="${test}/bin"/>
+ <property name="test.resources" value="${test.dir}/resources"/>
+ <property name="test.fdef" value="${test}/${fdef.dirname}"/>
+ <property name="test.lib" value="${test}/lib"/>
+ <property name="test.lib.ext" value="${test.lib}/ext"/>
+ <property name="reports.dir" value="${build.dir}/reports"/>
+ <property name="reports.checksum" value="${reports.dir}/checksum"/>
+ <property name="junit.reports.srcdir" location="reports"/>
+ <property name="junit.reports" location="${reports.dir}/junit"/>
+ <property name="junit.formatter" value="xml"/>
+ <property name="junit.fork" value="true"/>
+ <property name="junit.printsummary" value="true"/>
+ <property name="junit.includeantruntime" value="false"/>
+ <property name="junit.dir" value="../.."/>
+ <property name="junit.reports.xml" location="${junit.reports}/${junit.formatter}"/>
+ <property name="junit.report.ext" value="-junit.xml"/>
+ <target name="test.compile" description="Compiles the unit tests without triggering any dependencies.">
+ <mkdir dir="${test.bin}"/>
+ <javac destdir="${test.bin}" debug="${compile.debug}" includeAntRuntime="false">
+ <src path="${src.test.dir}"/>
+ <src path="${src.dir}/com/seagullsw/internaldev/appinterface/model"/>
+ <!-- Testing framework -->
+ <classpath location="${junit.jar}"/>
+ <classpath location="${mtjunit.jar}"/>
+ <classpath location="${xmlsec.jar}"/>
+ <!-- Jars to test, which the test cases refer to. -->
+ <classpath location="${ais-core.jar}"/>
+ <classpath location="${proxyservlet.jar}"/>
+ <classpath location="${ais.client.jar}"/>
+ <classpath location="${javaconnectorgenerator.jar}"/>
+ <classpath location="${securitytoolkit.jar}"/>
+ <classpath location="${ais-tools.jar}"/>
+ <classpath location="${ais-5250.jar}"/>
+ <classpath location="${ais-3270.jar}"/>
+ <classpath location="${ais-cobol.jar}"/>
+ <classpath location="${ais-cics.jar}"/>
+ <classpath location="${ais-ims.jar}"/>
+ <classpath location="${ais-adminclient.jar}"/>
+ <classpath location="${hsc.jar}"/>
+ <!-- dependencies -->
+ <classpath location="${ant.jar}"/>
+ <classpath location="${commons-cli.jar}"/>
+ <classpath location="${commons-httpclient.jar}"/>
+ <classpath refid="ais.classpath"/>
+ <classpath refid="proxyservlet.classpath"/>
+ <classpath refid="cobol.classpath"/>
+ <classpath refid="cics.backend.classpath"/>
+ <classpath refid="ims.backend.classpath"/>
+ <classpath refid="transforms.classpath"/>
+ <classpath refid="jsse.classpath"/>
+ </javac>
+ </target>
+ <target name="test.mkdir" depends="init">
+ <mkdir dir="${build.dir}"/>
+ <mkdir dir="${test}"/>
+ <mkdir dir="${test.bin}"/>
+ </target>
+ <target name="echo.xalan.version">
+ <echo level="info" message="Testing with ${TransformerFactory}"/>
+ <java classname="org.apache.xalan.Version"/>
+ </target>
+ <target name="report.init" depends="init, test.compile">
+ <mkdir dir="${junit.reports.xml}"/>
+ <echo level="info" message="Reporting to ${junit.reports.xml}"/>
+ </target>
+ <path id="junit.classpath">
+ <pathelement location="${ant.home}/lib/ant.jar"/>
+ <pathelement location="${ant.home}/lib/optional.jar"/>
+ <pathelement location="${ant.home}/lib/junit.jar"/>
+ </path>
+ <!-- Unit Tests: from low-level to high-level -->
+ <!-- Unit Tests: javax.lang -->
+ <target name="junit.javax.lang" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <pathelement location="${ais-tools.jar}"/>
+ <pathelement location="${j2se.tools.jar}"/>
+ <pathelement location="${commons-lang.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.unittest.javax.lang.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: javax.io -->
+ <target name="junit.javax.io" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <pathelement location="${commons-lang.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.javax.io.AllTests" todir="${junit.reports.xml}"/>
+ <test name="com.seagullsw.unittest.javax.io.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: javax.util -->
+ <target name="junit.javax.util" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.unittest.javax.util.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: Toolbox XML -->
+ <target name="junit.toolbox.xml" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement path="${sun.boot.class.path}"/>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="xml.classpath.rt"/>
+ <pathelement location="${commons-lang.jar}"/>
+ <pathelement location="${xmlsec.jar}"/>
+ <pathelement location="${jce.jar}"/>
+ <pathelement location="${log4j.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.unittest.toolbox.xml.StringProxyTestSuite" todir="${junit.reports.xml}"/>
+ <test name="com.seagullsw.unittest.toolbox.xml.DocumentProxyTestSuite" todir="${junit.reports.xml}"/>
+ <test name="com.seagullsw.unittest.toolbox.xml.ReadDocumentWithEncodingTestSuite" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: Toolbox config -->
+ <target name="junit.toolbox.config" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <pathelement path="${sun.boot.class.path}"/>
+ <pathelement location="${ais-core.jar}"/>
+ <pathelement location="${commons-lang.jar}"/>
+ <pathelement location="${commons-cli.jar}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.toolbox.config.ConfigurationDirectoryTestCase" todir="${junit.reports.xml}"/>
+ <test name="com.seagullsw.toolbox.config.ConfigValidatorTest" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: Toolbox logging -->
+ <target name="junit.toolbox.log" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${ais-core.jar}"/>
+ <pathelement location="${commons-lang.jar}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.toolbox.log.LogUnitTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: config/log -->
+ <target name="junit.server.config.log" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.config.bind.log.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: config/bind/threadpool -->
+ <target name="junit.server.config.threadpool" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.config.bind.threadpool.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: config/bind/transform -->
+ <target name="junit.server.config.transform" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <path refid="transforms.classpath"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.config.bind.transform.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: config/bind/core -->
+ <target name="junit.server.config.core" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.config.bind.core.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: config/bind/management -->
+ <target name="junit.server.config.management" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.config.bind.management.JaxbUnmarshalTestCase" todir="${junit.reports.xml}"/>
+ <test name="com.seagullsw.appinterface.server.config.bind.management.ConfigurationDirectoryUnmarshalTestCase" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: Chameleon -->
+ <target name="junit.ais-core.transforms" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement path="${sun.boot.class.path}"/>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="transforms.classpath"/>
+ <pathelement location="${xmlsec.jar}"/>
+ <pathelement location="${jce.jar}"/>
+ <pathelement location="${log4j.jar}"/>
+ <pathelement location="${goXMLResource.zip}"/>
+ <pathelement location="${goXMLconfig.dir}"/>
+ <pathelement location="${jdom.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.unittest.appinterface.transforms.ApacheXPathNamespaceTestSuite" todir="${junit.reports.xml}"/>
+ <test name="com.seagullsw.unittest.appinterface.transforms.SimpleAwkTestSuite" todir="${junit.reports.xml}"/>
+ <test name="com.seagullsw.unittest.appinterface.transforms.TransformationManagerBindingTestSuite" todir="${junit.reports.xml}"/>
+ <test name="com.seagullsw.unittest.appinterface.transforms.TransformationManagerTestSuite" todir="${junit.reports.xml}"/>
+ <test name="com.seagullsw.unittest.appinterface.transforms.GoXMLTransformationManagerTestSuite" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: com.seagullsw.appinterface.server.security.auth -->
+ <target name="junit.security.auth" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <path refid="jce.classpath.rt"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.security.auth.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: com.seagullsw.appinterface.server.crypto -->
+ <target name="junit.crypto" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <path refid="jce.classpath.rt"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.crypto.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: com.seagullsw.toolbox.net -->
+ <target name="junit.toolbox.net" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <pathelement location="${commons-codec.jar}"/>
+ <pathelement location="${commons-httpclient.jar}"/>
+ <pathelement location="${commons-logging.jar}"/>
+ <path refid="jce.classpath.rt"/>
+ <path refid="jsse.classpath"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.toolbox.net.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: com.seagullsw.unittest.appinterface.model -->
+ <target name="junit.model" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <path refid="transforms.classpath"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.unittest.appinterface.model.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <target name="junit.server" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <path refid="ims.backend.classpath"/>
+ <path refid="cics.backend.classpath"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.LoadFunctionsTest" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: com.seagullsw.unittest.appinterface.server.backend.hostconnector2 -->
+ <target name="junit.hostconnector2" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${ais-5250.jar}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.unittest.appinterface.server.backend.hostconnector2.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <target name="junit.backend.hsc" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <!-- The timeout is expressed in milliseconds. -->
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <path refid="jce.classpath.rt"/>
+ <pathelement location="${ais-5250.jar}"/>
+ <pathelement location="${ais-3270.jar}"/>
+ <pathelement location="${commons-httpclient.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.config.bind.connectors.hsc.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: IMS back-end -->
+ <target name="junit.backend.ims" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <!-- The timeout is expressed in milliseconds. -->
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <path refid="ims.backend.classpath"/>
+ <path refid="jce.classpath.rt"/>
+ <pathelement location="${ais-ims.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.config.bind.connectors.ims.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <target name="junit.backend.ims.live" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <!-- The timeout is expressed in milliseconds. -->
+ <junit printsummary="${junit.printsummary}" fork="true" timeout="45000" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <path refid="ims.backend.classpath"/>
+ <path refid="jce.classpath.rt"/>
+ <pathelement location="${ais-ims.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.backend.ims.AllLiveImsIcoTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Unit Tests: CICS back-end -->
+ <target name="junit.backend.cics" depends="junit.backend.cics.common, junit.backend.cics.ctg.live, junit.backend.cics.hb, junit.backend.cics.hb.live"/>
+ <target name="junit.backend.cics.common" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <path refid="jce.classpath.rt"/>
+ <pathelement location="${ais-cics.jar}"/>
+ <pathelement location="${ctgclient.jar}"/>
+ <pathelement location="${commons-httpclient.jar}"/>
+ <pathelement location="${commons-logging.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.config.bind.connectors.cics.AllTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <target name="junit.backend.cics.ctg.live" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <!-- The timeout is expressed in milliseconds. -->
+ <junit printsummary="${junit.printsummary}" fork="true" timeout="600000" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <pathelement location="${ais-cics.jar}"/>
+ <pathelement location="${ctgclient.jar}"/>
+ <pathelement location="${commons-httpclient.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.backend.cics.AllLiveIbmCtgTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <target name="junit.backend.cics.hb" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="${junit.fork}" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <pathelement location="${ais-cics.jar}"/>
+ <pathelement location="${commons-httpclient.jar}"/>
+ <pathelement location="${commons-logging.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.backend.cics.HostBridgeByteBufferStrategyTest" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <target name="junit.backend.cics.hb.live" depends="report.init">
+ <mkdir dir="${junit.reports.xml}"/>
+ <junit printsummary="${junit.printsummary}" fork="true" timeout="600000" dir="${junit.dir}" includeantruntime="${junit.includeantruntime}">
+ <formatter type="${junit.formatter}" extension="${junit.report.ext}"/>
+ <classpath>
+ <pathelement location="${ais-core.jar}"/>
+ <path refid="ais.classpath"/>
+ <pathelement location="${ais-cics.jar}"/>
+ <pathelement location="${commons-httpclient.jar}"/>
+ <pathelement location="${commons-logging.jar}"/>
+ <pathelement location="${test.bin}"/>
+ <pathelement location="${test.resources}"/>
+ <path refid="junit.classpath"/>
+ </classpath>
+ <test name="com.seagullsw.appinterface.server.backend.cics.AllLiveHostBridgeTests" todir="${junit.reports.xml}"/>
+ </junit>
+ </target>
+ <!-- Clean reports -->
+ <target name="junit.report.clean">
+ <delete dir="${junit.reports}"/>
+ </target>
+ <!-- Create the unit tests report -->
+ <target name="junit.report" depends="init">
+ <mkdir dir="${junit.reports}"/>
+ <property name="junit.reports.frames" location="${junit.reports}/frames"/>
+ <property name="junit.reports.noframes" location="${junit.reports}/noframes"/>
+ <mkdir dir="${junit.reports.xml}"/>
+ <mkdir dir="${junit.reports.frames}"/>
+ <mkdir dir="${junit.reports.noframes}"/>
+ <echo level="info" message="Compiling all reports to ${junit.reports}..."/>
+ <junitreport todir="${junit.reports.xml}">
+ <fileset dir="${junit.reports.xml}">
+ <include name="**/*${junit.report.ext}"/>
+ </fileset>
+ <report format="noframes" todir="${junit.reports.noframes}"/>
+ <report format="frames" todir="${junit.reports.frames}"/>
+ </junitreport>
+ <echo level="info" message="The XML report is in: ${junit.reports.xml}"/>
+ <echo level="info" message="The HTML report (with frames) is in: ${junit.reports.frames}"/>
+ <echo level="info" message="The HTML report (no frames) is in: ${junit.reports.noframes}"/>
+ <!-- Rename file to index.html -->
+ <move file="${junit.reports.noframes}/junit-noframes.html" tofile="${junit.reports.noframes}/index.html"/>
+ <!-- Copy test reports home page -->
+ <copy file="${junit.reports.srcdir}/index.html" todir="${reports.dir}" overwrite="true" filtering="true"/>
+ <copy todir="${reports.dir}/images" overwrite="true">
+ <fileset dir="${junit.reports.srcdir}/images"/>
+ </copy>
+ <antcall target="report.checksums"/>
+ </target>
+ <target name="report.checksums">
+ <antcall target="copy-checksums"/>
+ <property name="temp.index" value="${reports.dir}/index-temp.html"/>
+ <xslt in="${reports.dir}/index.html" out="${temp.index}" force="true" style="${junit.reports.srcdir}/apply-data.xslt">
+ <param name="reportDir" expression="${reports.dir}"/>
+ </xslt>
+ <delete file="${reports.dir}/index.html"/>
+ <move file="${temp.index}" tofile="${reports.dir}/index.html"/>
+ </target>
+ <target name="junit.javax" depends="junit.javax.io, junit.javax.util, junit.javax.lang"/>
+ <target name="junit.server.config" depends="junit.server.config.log, junit.server.config.threadpool, junit.server.config.transform, junit.server.config.core, junit.server.config.management"/>
+ <target name="junit.toolbox" depends="junit.toolbox.config, junit.toolbox.xml, junit.toolbox.net, junit.toolbox.log"/>
+ <target name="junit.ais-core" depends="junit.javax, junit.toolbox, junit.server.config, junit.ais-core.transforms, junit.security.auth, junit.crypto, junit.model, junit.server"/>
+ <target name="junit.backend" depends="junit.backend.hsc, junit.backend.ims, junit.backend.ims.live, junit.backend.cics, junit.hostconnector2"/>
+ <target name="test" description="Runs the tests." depends="init, test.compile, junit.report.clean, junit.ais-core, junit.backend, junit.report"/>
+ <!-- Build and Zip -->
+ <target name="zip" depends="dist" description="Creates the final ${zip-file} (does it all)">
+ <property name="zip-file" location="${build.dir}/${zipFileBaseName}-build${build.id}.zip"/>
+ <delete file="${zip-file}" quiet="true"/>
+ <zip zipfile="${zip-file}" basedir="${build.dist}"/>
+ </target>
+ <target name="nightly-build" depends="init, clean, dist, verify, test" description="Creates a nightly build (does it all)">
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/projectOnly.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/projectOnly.xml
new file mode 100644
index 000000000..35ece5b8f
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/projectOnly.xml
@@ -0,0 +1,4 @@
+
+
+
+<project ></project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/refid.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/refid.xml
new file mode 100644
index 000000000..a9f4ae1e3
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/refid.xml
@@ -0,0 +1,49 @@
+<project default="1">
+ <path id="project.class.path">
+ <pathelement location="lib/" />
+ <pathelement path="${java.class.path}/" />
+ <pathelement path="${additional.path}" />
+ </path>
+
+ <target name="1">
+ <path id="project.class.path2">
+ <path refid="project.class.path" />
+ </path>
+ </target>
+
+ <target name="compile">
+ <javac srcdir="src"
+ destdir="dst"
+ classpathref=""
+ sourcepathref=""
+ bootclasspathref=""
+ debug="on" />
+ </target>
+
+ <target name= "depends" depends=" compile , 1 ">
+ </target>
+
+ <property name="name with spaces" value="value with spaces"/>
+
+
+ <fileset dir="dir" id="filesetTest">
+ <include name="include"/>
+ <exclude name="exclude"/>
+ </fileset>
+
+ <patternset id="patternSetTest">
+ <include name="*.xml"/>
+ <exclude name="**/*Test*"/>
+ </patternset>
+
+ <patternset id="patternSetTestBad">
+ <includesfile name="nothere"/>
+ </patternset>
+
+ <echo>${name with spaces}</echo>
+
+ <fileset refid="filesetTest">
+ <patternset refid="patternSetTest"></patternset>
+ <patternset refid="patternSetTestBad"></patternset>
+ </fileset>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/russianbuild.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/russianbuild.xml
new file mode 100644
index 000000000..d8535663e
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/russianbuild.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="windows-1251"?>
+<project name="test" default="init" basedir=".">
+
+ <target name="init">
+ <!-- displays Hello in Russian -->
+ <echo message="Çäðàâñòâóéòå"/>
+ </target>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/taskdef.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/taskdef.xml
new file mode 100644
index 000000000..c912b716b
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/taskdef.xml
@@ -0,0 +1,11 @@
+<project default="type">
+
+ <taskdef name="mine" classname="org.eclipse.ant.tests.ui.support.tasks.AntTestTask" classpath="antUITestsSupport.jar">
+ </taskdef>
+
+ <target name="type">
+
+ </target>
+
+ <mine></mine>
+</project> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test1.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test1.xml
new file mode 100644
index 000000000..6f60a3281
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test1.xml
@@ -0,0 +1,10 @@
+
+<bla>
+ <blub></blub>
+ <klick>
+ <gurgel></gurgel>
+ <hal
+ <klack/>
+ <humpf/>
+ </klick>
+</bla> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test2.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test2.xml
new file mode 100644
index 000000000..1ca876585
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test2.xml
@@ -0,0 +1,9 @@
+<bla>
+ <blub></blub>
+ <klick>
+ <gurgel></gurgel>
+ <hal></hal>
+ <klack/>
+ <humpf/>
+ </klick>
+</bla> \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test3.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test3.xml
new file mode 100644
index 000000000..674088ee7
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test3.xml
@@ -0,0 +1,4 @@
+<bla>
+ <blub>
+ </blub>
+</
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test4.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test4.xml
new file mode 100644
index 000000000..fd60f79fb
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test4.xml
@@ -0,0 +1 @@
+<target name="main"><mk \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/test5.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test5.xml
new file mode 100644
index 000000000..c297d9565
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/test5.xml
@@ -0,0 +1,6 @@
+<project name="main">
+ <target name="bla" />
+ <property name="prop1" value="val1"/>
+ <property name="prop2" value="val2"/>
+ <property name="prop3" value="val3"/>
+<g \ No newline at end of file
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImported.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImported.xml
new file mode 100644
index 000000000..5b03f801b
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImported.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<project name="toBeImported" default="import-default">
+
+ <target name="import-default" depends="depends">
+ <echo>import-default</echo>
+ </target>
+
+ <target name="depends">
+ <echo>depends</echo>
+ </target>
+</project>
+
diff --git a/ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImportedWithByteOrderMark.xml b/ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImportedWithByteOrderMark.xml
new file mode 100644
index 000000000..7a0a8baa7
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testbuildfiles/toBeImportedWithByteOrderMark.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!--
+ Copyright (c) 2005, 2008 IBM Corporation and others.
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+ -->
+
+<!--
+ bug 195840 Import a XML file with BOM character in ant editor fails
+ this file starts with Byte Order Mark EF BB BF - utf8
+-->
+<project basedir="." default="build" name="Test">
+ <target name="build" />
+</project>
diff --git a/ant/org.eclipse.ant.tests.ui/testresources/Test2.java b/ant/org.eclipse.ant.tests.ui/testresources/Test2.java
new file mode 100644
index 000000000..447c4682f
--- /dev/null
+++ b/ant/org.eclipse.ant.tests.ui/testresources/Test2.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Sep 21, 2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+
+/**
+ * @author Administrator
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+public class Test2 {
+
+ public static void main(String[] args) {
+
+ System.out.println("preRuntest");
+ }
+}
diff --git a/ant/org.eclipse.ant.ui/.classpath b/ant/org.eclipse.ant.ui/.classpath
new file mode 100644
index 000000000..bb1af3b61
--- /dev/null
+++ b/ant/org.eclipse.ant.ui/.classpath
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="Ant Tools Support"/>
+ <classpathentry kind="src" output="ant_runner_support_bin" path="Ant Runner Support"/>
+ <classpathentry kind="src" path="Ant Editor"/>
+ <classpathentry kind="src" output="remote_support_bin" path="Remote Ant Support"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/ant/org.eclipse.ant.ui/.externalToolBuilders/Build Ant Runner Support JAR.launch b/ant/org.eclipse.ant.ui/.externalToolBuilders/Build Ant Runner Support JAR.launch
new file mode 100644
index 000000000..076779dee
--- /dev/null
+++ b/ant/org.eclipse.ant.ui/.externalToolBuilders/Build Ant Runner Support JAR.launch
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,clean"/>
+<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.debug.ui.target_run_perspective" value="perspective_none"/>
+<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.ui/Common Ant Support&quot; type=&quot;2&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.ui/Ant Runner Support&quot; type=&quot;2&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.ui/buildfiles/buildExtraJAR.xml&quot; type=&quot;1&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.ant.ui/buildfiles/buildExtraJAR.xml}"/>
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_RUN_IN_BACKGROUND" value="false"/>
+</launchConfiguration>
diff --git a/ant/org.eclipse.ant.ui/.externalToolBuilders/Build Remote Ant JAR.launch b/ant/org.eclipse.ant.ui/.externalToolBuilders/Build Remote Ant JAR.launch
new file mode 100644
index 000000000..82c5814b9
--- /dev/null
+++ b/ant/org.eclipse.ant.ui/.externalToolBuilders/Build Remote Ant JAR.launch
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
+<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,clean"/>
+<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
+<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_BUILD_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;launchConfigurationWorkingSet factoryID=&quot;org.eclipse.ui.internal.WorkingSetFactory&quot; name=&quot;workingSet&quot; editPageId=&quot;org.eclipse.ui.resourceWorkingSetPage&quot;&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.ui/buildfiles/buildRemoteExtraJAR.xml&quot; type=&quot;1&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.ui/Common Ant Support&quot; type=&quot;2&quot;/&gt;&#10;&lt;item factoryID=&quot;org.eclipse.ui.internal.model.ResourceFactory&quot; path=&quot;/org.eclipse.ant.ui/Remote Ant Support&quot; type=&quot;2&quot;/&gt;&#10;&lt;/launchConfigurationWorkingSet&gt;&#10;}"/>
+<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_CLEAN_TARGETS" value="clean,"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.ant.ui/buildfiles/buildRemoteExtraJAR.xml}"/>
+<booleanAttribute key="org.eclipse.debug.ui.ATTR_RUN_IN_BACKGROUND" value="false"/>
+</launchConfiguration>
diff --git a/ant/org.eclipse.ant.ui/.project b/ant/org.eclipse.ant.ui/.project
new file mode 100644
index 000000000..b8a58f642
--- /dev/null
+++ b/ant/org.eclipse.ant.ui/.project
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.ant.ui</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value>&lt;project&gt;/.externalToolBuilders/Build Ant Runner Support JAR.launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>LaunchConfigHandle</key>
+ <value>&lt;project&gt;/.externalToolBuilders/Build Remote Ant JAR.launch</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.team.cvs.core.cvsnature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+ </natures>
+</projectDescription>
diff --git a/ant/org.eclipse.ant.ui/.settings/org.eclipse.pde.core.prefs b/ant/org.eclipse.ant.ui/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 000000000..ee4416fd4
--- /dev/null
+++ b/ant/org.eclipse.ant.ui/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+#Fri Jan 21 19:40:52 GMT-08:00 2005
+eclipse.preferences.version=1
+selfhosting.binExcludes=/org.eclipse.ant.ui/ant_runner_support_bin,/org.eclipse.ant.ui/common_ant_support_bin,/org.eclipse.ant.ui/remote_support_bin
diff --git a/ant/org.eclipse.ant.ui/Ant Editor Content Assist Dev/XDOCtasks.xml b/ant/org.eclipse.ant.ui/Ant Editor Content Assist Dev/XDOCtasks.xml
new file mode 100644
index 000000000..b82075ecc
--- /dev/null
+++ b/ant/org.eclipse.ant.ui/Ant Editor Content Assist Dev/XDOCtasks.xml
@@ -0,0 +1,18688 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tasks>
+<task name="ant" category="control"
+ classname="org.apache.tools.ant.taskdefs.Ant"
+ >
+
+ <short-description><![CDATA[Build a sub-project.]]></short-description>
+ <description>
+ <![CDATA[Build a sub-project.
+
+ <pre>
+ &lt;target name=&quot;foo&quot; depends=&quot;init&quot;&gt;
+ &lt;ant antfile=&quot;build.xml&quot; target=&quot;bar&quot; &gt;
+ &lt;property name=&quot;property1&quot; value=&quot;aaaaa&quot; /&gt;
+ &lt;property name=&quot;foo&quot; value=&quot;baz&quot; /&gt;
+ &lt;/ant&gt;</SPAN>
+ &lt;/target&gt;</SPAN>
+
+ &lt;target name=&quot;bar&quot; depends=&quot;init&quot;&gt;
+ &lt;echo message=&quot;prop is ${property1} ${foo}&quot; /&gt;
+ &lt;/target&gt;
+ </pre>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="antfile" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The buildfile to use.]]></short-description>
+ <description><![CDATA[
+ The buildfile to use.
+ Defaults to "build.xml". This file is expected to be a filename relative
+ to the dir attribute given.
+ ]]></description>
+ </attribute>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory to use as a base directory for the new Ant project.]]></short-description>
+ <description><![CDATA[
+ The directory to use as a base directory for the new Ant project.
+ Defaults to the current project's basedir, unless inheritall
+ has been set to false, in which case it doesn't have a default
+ value. This will override the basedir setting of the called project.
+ ]]></description>
+ </attribute>
+ <attribute name="inheritall" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, pass all properties to the new Ant project.]]></short-description>
+ <description><![CDATA[
+ If true, pass all properties to the new Ant project.
+ Defaults to true.
+ ]]></description>
+ </attribute>
+ <attribute name="inheritrefs" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, pass all references to the new Ant project.]]></short-description>
+ <description><![CDATA[
+ If true, pass all references to the new Ant project.
+ Defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="output" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Filename to write the output to.]]></short-description>
+ <description><![CDATA[
+ Filename to write the output to.
+ This is relative to the value of the dir attribute
+ if it has been set or to the base directory of the
+ current project otherwise.
+ ]]></description>
+ </attribute>
+ <attribute name="target" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The target of the new Ant project to execute.]]></short-description>
+ <description><![CDATA[
+ The target of the new Ant project to execute.
+ Defaults to the new project's default target.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="reference" type="org.apache.tools.ant.taskdefs.Ant.Reference"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Reference element identifying a data type to carry
+ over to the new project.]]></short-description>
+ <description>
+ <![CDATA[Reference element identifying a data type to carry
+ over to the new project.]]>
+ </description>
+ </element>
+
+ <element name="property" type="org.apache.tools.ant.taskdefs.Property"
+ briefType="see &lt;property&gt;"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Property to pass to the new project.]]></short-description>
+ <description>
+ <![CDATA[Property to pass to the new project.
+ The property is passed as a 'user property']]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="antcall" category="control"
+ classname="org.apache.tools.ant.taskdefs.CallTarget"
+ >
+
+ <short-description><![CDATA[Call another target in the same project.]]></short-description>
+ <description>
+ <![CDATA[Call another target in the same project.
+
+ <pre>
+ &lt;target name="foo"&gt;
+ &lt;antcall target="bar"&gt;
+ &lt;param name="property1" value="aaaaa" /&gt;
+ &lt;param name="foo" value="baz" /&gt;
+ &lt;/antcall&gt;
+ &lt;/target&gt;
+
+ &lt;target name="bar" depends="init"&gt;
+ &lt;echo message="prop is ${property1} ${foo}" /&gt;
+ &lt;/target&gt;
+ </pre>
+
+ <p>This only works as expected if neither property1 nor foo are
+ defined in the project itself.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="inheritall" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, pass all properties to the new Ant project.]]></short-description>
+ <description><![CDATA[
+ If true, pass all properties to the new Ant project.
+ Defaults to true.
+ ]]></description>
+ </attribute>
+ <attribute name="inheritrefs" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, pass all references to the new Ant project.]]></short-description>
+ <description><![CDATA[
+ If true, pass all references to the new Ant project.
+ Defaults to false
+ ]]></description>
+ </attribute>
+ <attribute name="target" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Target to execute, required.]]></short-description>
+ <description><![CDATA[
+ Target to execute, required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="reference" type="org.apache.tools.ant.taskdefs.Ant.Reference"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Reference element identifying a data type to carry
+ over to the invoked target.]]></short-description>
+ <description>
+ <![CDATA[Reference element identifying a data type to carry
+ over to the invoked target.]]>
+ </description>
+ </element>
+
+ <element name="param" type="org.apache.tools.ant.taskdefs.Property"
+ briefType="see &lt;property&gt;"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Property to pass to the invoked target.]]></short-description>
+ <description>
+ <![CDATA[Property to pass to the invoked target.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="antlr" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ANTLR"
+ >
+
+ <short-description><![CDATA[Invokes the ANTLR Translator generator on a grammar file.]]></short-description>
+ <description>
+ <![CDATA[Invokes the ANTLR Translator generator on a grammar file.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="debug" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to enable ParseView debugging.]]></short-description>
+ <description><![CDATA[
+ Sets a flag to enable ParseView debugging
+ ]]></description>
+ </attribute>
+ <attribute name="diagnostic" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to emit diagnostic text.]]></short-description>
+ <description><![CDATA[
+ Sets a flag to emit diagnostic text
+ ]]></description>
+ </attribute>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The working directory of the process.]]></short-description>
+ <description><![CDATA[
+ The working directory of the process
+ ]]></description>
+ </attribute>
+ <attribute name="glib" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets an optional super grammar file.]]></short-description>
+ <description><![CDATA[
+ Sets an optional super grammar file.
+ ]]></description>
+ </attribute>
+ <attribute name="html" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, emit html.]]></short-description>
+ <description><![CDATA[
+ If true, emit html
+ ]]></description>
+ </attribute>
+ <attribute name="outputdirectory" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory to write the generated files to.]]></short-description>
+ <description><![CDATA[
+ The directory to write the generated files to.
+ ]]></description>
+ </attribute>
+ <attribute name="target" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The grammar file to process.]]></short-description>
+ <description><![CDATA[
+ The grammar file to process.
+ ]]></description>
+ </attribute>
+ <attribute name="trace" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, enables all tracing.]]></short-description>
+ <description><![CDATA[
+ If true, enables all tracing.
+ ]]></description>
+ </attribute>
+ <attribute name="tracelexer" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, enables lexer tracing.]]></short-description>
+ <description><![CDATA[
+ If true, enables lexer tracing.
+ ]]></description>
+ </attribute>
+ <attribute name="traceparser" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, enables parser tracing.]]></short-description>
+ <description><![CDATA[
+ If true, enables parser tracing.
+ ]]></description>
+ </attribute>
+ <attribute name="tracetreewalker" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to allow the user to enable tree walker tracing.]]></short-description>
+ <description><![CDATA[
+ Sets a flag to allow the user to enable tree walker tracing
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a classpath to be set
+ because a directory might be given for Antlr debug.]]></short-description>
+ <description>
+ <![CDATA[Adds a classpath to be set
+ because a directory might be given for Antlr debug.]]>
+ </description>
+ </element>
+
+ <element name="jvmarg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a new JVM argument.]]></short-description>
+ <description>
+ <![CDATA[Adds a new JVM argument.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="antstructure" category="xml"
+ classname="org.apache.tools.ant.taskdefs.AntStructure"
+ >
+
+ <short-description><![CDATA[Creates a partial DTD for Ant from the currently known tasks.]]></short-description>
+ <description>
+ <![CDATA[Creates a partial DTD for Ant from the currently known tasks.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="output" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The output file.]]></short-description>
+ <description><![CDATA[
+ The output file.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="apply" category="control"
+ classname="org.apache.tools.ant.taskdefs.ExecuteOn"
+ >
+
+ <short-description><![CDATA[Executes a given command, supplying a set of files as arguments.]]></short-description>
+ <description>
+ <![CDATA[Executes a given command, supplying a set of files as arguments.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="append" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether output should be appended to or overwrite an existing file.]]></short-description>
+ <description><![CDATA[
+ Whether output should be appended to or overwrite an existing file.
+ Defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory where target files are to be placed.]]></short-description>
+ <description><![CDATA[
+ The directory where target files are to be placed.
+ ]]></description>
+ </attribute>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The working directory of the process.]]></short-description>
+ <description><![CDATA[
+ The working directory of the process.
+ ]]></description>
+ </attribute>
+ <attribute name="executable" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The command to execute.]]></short-description>
+ <description><![CDATA[
+ The command to execute.
+ ]]></description>
+ </attribute>
+ <attribute name="failifexecutionfails" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Stop the build if program cannot be started.]]></short-description>
+ <description><![CDATA[
+ Stop the build if program cannot be started. Defaults to true.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Fail if the command exits with a non-zero return code.]]></short-description>
+ <description><![CDATA[
+ Fail if the command exits with a non-zero return code.
+ ]]></description>
+ </attribute>
+ <attribute name="newenvironment" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Do not propagate old environment when new environment variables are specified.]]></short-description>
+ <description><![CDATA[
+ Do not propagate old environment when new environment variables are specified.
+ ]]></description>
+ </attribute>
+ <attribute name="os" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[List of operating systems on which the command may be executed.]]></short-description>
+ <description><![CDATA[
+ List of operating systems on which the command may be executed.
+ ]]></description>
+ </attribute>
+ <attribute name="output" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File the output of the process is redirected to.]]></short-description>
+ <description><![CDATA[
+ File the output of the process is redirected to.
+ ]]></description>
+ </attribute>
+ <attribute name="outputproperty" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Property name whose value should be set to the output of
+ the process.]]></short-description>
+ <description><![CDATA[
+ Property name whose value should be set to the output of
+ the process.
+ ]]></description>
+ </attribute>
+ <attribute name="parallel" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, run the command only once, appending all files as arguments.]]></short-description>
+ <description><![CDATA[
+ If true, run the command only once, appending all files as arguments.
+ If false, command will be executed once for every file. Defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="relative" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the filenames should be passed on the command line as
+ absolute or relative pathnames.]]></short-description>
+ <description><![CDATA[
+ Whether the filenames should be passed on the command line as
+ absolute or relative pathnames. Paths are relative to the base
+ directory of the corresponding fileset for source files or the
+ dest attribute for target files.
+ ]]></description>
+ </attribute>
+ <attribute name="resultproperty" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of a property in which the return code of the
+ command should be stored.]]></short-description>
+ <description><![CDATA[
+ The name of a property in which the return code of the
+ command should be stored. Only of interest if failonerror=false.
+ ]]></description>
+ </attribute>
+ <attribute name="skipemptyfilesets" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If no source files have been found or are newer than their
+ corresponding target files, do not run the command.]]></short-description>
+ <description><![CDATA[
+ If no source files have been found or are newer than their
+ corresponding target files, do not run the command.
+ ]]></description>
+ </attribute>
+ <attribute name="type" type="org.apache.tools.ant.taskdefs.ExecuteOn.FileDirBoth"
+ briefType="&quot;file&quot;, &quot;dir&quot;, &quot;both&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the command works only on files, directories or both?.]]></short-description>
+ <description><![CDATA[
+ Whether the command works only on files, directories or both?
+ ]]></description>
+ </attribute>
+ <attribute name="vmlauncher" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, launch new process with VM, otherwise use the OS's shell.]]></short-description>
+ <description><![CDATA[
+ If true, launch new process with VM, otherwise use the OS's shell.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="env" type="org.apache.tools.ant.types.Environment.Variable"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an environment variable to the launched process.]]></short-description>
+ <description>
+ <![CDATA[Add an environment variable to the launched process.]]>
+ </description>
+ </element>
+
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Source files to operate upon.]]></short-description>
+ <description>
+ <![CDATA[Source files to operate upon.]]>
+ </description>
+ </element>
+
+ <element name="arg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a command-line argument.]]></short-description>
+ <description>
+ <![CDATA[Adds a command-line argument.]]>
+ </description>
+ </element>
+
+ <element name="mapper" type="org.apache.tools.ant.types.Mapper"
+ briefType="Mapper"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Mapper to use for mapping source files to target files.]]></short-description>
+ <description>
+ <![CDATA[Mapper to use for mapping source files to target files.]]>
+ </description>
+ </element>
+
+ <element name="srcfile" type="org.apache.tools.ant.types.Commandline.Marker"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Marker that indicates where the name of the source file should
+ be put on the command line.]]></short-description>
+ <description>
+ <![CDATA[Marker that indicates where the name of the source file should
+ be put on the command line.]]>
+ </description>
+ </element>
+
+ <element name="targetfile" type="org.apache.tools.ant.types.Commandline.Marker"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Marker that indicates where the name of the target file should
+ be put on the command line.]]></short-description>
+ <description>
+ <![CDATA[Marker that indicates where the name of the target file should
+ be put on the command line.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="available" category="control"
+ classname="org.apache.tools.ant.taskdefs.Available"
+ >
+
+ <short-description><![CDATA[Will set the given property if the requested resource is available at runtime.]]></short-description>
+ <description>
+ <![CDATA[Will set the given property if the requested resource is available at
+ runtime. This task may also be used as a condition by the condition task.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="classname" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Classname of a class which must be available to set the given
+ property.]]></short-description>
+ <description><![CDATA[
+ Set a classname of a class which must be available to set the given
+ property.
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used when searching for classes and resources.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used when searching for classes and resources.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath by reference.]]></short-description>
+ <description><![CDATA[
+ Set the classpath by reference.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File which must be present in the file system to set the given
+ property.]]></short-description>
+ <description><![CDATA[
+ Set the file which must be present in the file system to set the given
+ property.
+ ]]></description>
+ </attribute>
+ <attribute name="filepath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Path to use when looking for a file.]]></short-description>
+ <description><![CDATA[
+ Set the path to use when looking for a file.
+ ]]></description>
+ </attribute>
+ <attribute name="ignoresystemclasses" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set whether the search for classes should ignore the runtime classes and
+ just use the given classpath.]]></short-description>
+ <description><![CDATA[
+ Set whether the search for classes should ignore the runtime classes and
+ just use the given classpath.
+ ]]></description>
+ </attribute>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the property which will be set if the particular resource
+ is available.]]></short-description>
+ <description><![CDATA[
+ Set the name of the property which will be set if the particular resource
+ is available.
+ ]]></description>
+ </attribute>
+ <attribute name="resource" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of a Java resource which is required to set the property.]]></short-description>
+ <description><![CDATA[
+ Set the name of a Java resource which is required to set the property.
+ ]]></description>
+ </attribute>
+ <attribute name="type" type="org.apache.tools.ant.taskdefs.Available.FileDir"
+ briefType="&quot;file&quot;, &quot;dir&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Set what type of file is required - either directory or file.]]></short-description>
+ <description><![CDATA[
+ Set what type of file is required - either directory or file.
+ ]]></description>
+ </attribute>
+ <attribute name="value" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Value to be given to the property if the desired resource is
+ available.]]></short-description>
+ <description><![CDATA[
+ Set the value to be given to the property if the desired resource is
+ available.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used when searching for classes and resources.]]></short-description>
+ <description>
+ <![CDATA[Classpath to be used when searching for classes and resources.]]>
+ </description>
+ </element>
+
+ <element name="filepath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Path to search for file resources.]]></short-description>
+ <description>
+ <![CDATA[Path to search for file resources.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="basename" category="property"
+ classname="org.apache.tools.ant.taskdefs.Basename"
+ >
+
+ <short-description><![CDATA[Sets a property to the base name of a specified file, optionally minus a suffix.]]></short-description>
+ <description>
+ <![CDATA[Sets a property to the base name of a specified file, optionally minus a
+ suffix.
+
+ This task can accept the following attributes:
+ <ul>
+ <li>file
+ <li>property
+ <li>suffix
+ </ul>
+ The <b>file</b> and <b>property</b> attributes are required. The
+ <b>suffix</b> attribute can be specified either with or without
+ the &quot;.&quot;, and the result will be the same (ie., the
+ returned file name will be minus the .suffix).
+ <p>
+ When this task executes, it will set the specified property to the
+ value of the last element in the specified file. If file is a
+ directory, the basename will be the last directory element. If file
+ is a full-path filename, the basename will be the simple file name.
+ If a suffix is specified, and the specified file ends in that suffix,
+ the basename will be the simple file name without the suffix.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File or directory to get base name from.]]></short-description>
+ <description><![CDATA[
+ File or directory to get base name from.
+ ]]></description>
+ </attribute>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Property to set base name to.]]></short-description>
+ <description><![CDATA[
+ Property to set base name to.
+ ]]></description>
+ </attribute>
+ <attribute name="suffix" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Optional suffix to remove from base name.]]></short-description>
+ <description><![CDATA[
+ Optional suffix to remove from base name.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="blgenclient" category="ejb"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.BorlandGenerateClient"
+ >
+
+ <short-description><![CDATA[Generates a Borland Application Server 4.5 client JAR using as input the EJB JAR file.]]></short-description>
+ <description>
+ <![CDATA[Generates a Borland Application Server 4.5 client JAR using as
+ input the EJB JAR file.
+
+ Two mode are available: java mode (default) and fork mode. With the fork mode,
+ it is impossible to add classpath to the commmand line.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Path to use for classpath.]]></short-description>
+ <description><![CDATA[
+ Path to use for classpath.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Reference to existing path, to use as a classpath.]]></short-description>
+ <description><![CDATA[
+ Reference to existing path, to use as a classpath.
+ ]]></description>
+ </attribute>
+ <attribute name="clientjar" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Client JAR file name.]]></short-description>
+ <description><![CDATA[
+ Client JAR file name.
+ ]]></description>
+ </attribute>
+ <attribute name="debug" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, turn on the debug mode for each of the Borland tools launched.]]></short-description>
+ <description><![CDATA[
+ If true, turn on the debug mode for each of the Borland tools launched.
+ ]]></description>
+ </attribute>
+ <attribute name="ejbjar" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[EJB JAR file.]]></short-description>
+ <description><![CDATA[
+ EJB JAR file.
+ ]]></description>
+ </attribute>
+ <attribute name="mode" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Command launching mode: java or fork.]]></short-description>
+ <description><![CDATA[
+ Command launching mode: java or fork.
+ ]]></description>
+ </attribute>
+ <attribute name="version" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds path to the classpath.]]></short-description>
+ <description>
+ <![CDATA[Adds path to the classpath.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="buildnumber" category="other"
+ classname="org.apache.tools.ant.taskdefs.BuildNumber"
+ >
+
+ <short-description><![CDATA[Read, increment, and write a build number in a file It will first attempt to read a build number from a file, then set the property "build.number" to the value that was read in (or 0 if no such value).]]></short-description>
+ <description>
+ <![CDATA[Read, increment, and write a build number in a file
+ It will first
+ attempt to read a build number from a file, then set the property
+ "build.number" to the value that was read in (or 0 if no such value). Then
+ it will increment the build number by one and write it back out into the
+ file.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file in which the build number is stored.]]></short-description>
+ <description><![CDATA[
+ The file in which the build number is stored. Defaults to
+ "build.number" if not specified.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="bunzip2" category="packaging"
+ classname="org.apache.tools.ant.taskdefs.BUnzip2"
+ >
+
+ <short-description><![CDATA[Expands a file that has been compressed with the BZIP2 algorithm.]]></short-description>
+ <description>
+ <![CDATA[Expands a file that has been compressed with the BZIP2
+ algorithm. Normally used to compress non-compressed archives such
+ as TAR files.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The destination file or directory; optional.]]></short-description>
+ <description><![CDATA[
+ The destination file or directory; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file to expand; required.]]></short-description>
+ <description><![CDATA[
+ The file to expand; required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="bzip2" category="packaging"
+ classname="org.apache.tools.ant.taskdefs.BZip2"
+ >
+
+ <short-description><![CDATA[Compresses a file with the BZIP2 algorithm.]]></short-description>
+ <description>
+ <![CDATA[Compresses a file with the BZIP2 algorithm. Normally used to compress
+ non-compressed archives such as TAR files.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file to compress; required.]]></short-description>
+ <description><![CDATA[
+ the file to compress; required.
+ ]]></description>
+ </attribute>
+ <attribute name="zipfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The required destination file.]]></short-description>
+ <description><![CDATA[
+ the required destination file.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="cab" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.Cab"
+ matchingTask="true">
+
+ <short-description><![CDATA[Create a CAB archive.]]></short-description>
+ <description>
+ <![CDATA[Create a CAB archive.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="basedir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Base directory to look in for files to CAB.]]></short-description>
+ <description><![CDATA[
+ Base directory to look in for files to CAB.
+ ]]></description>
+ </attribute>
+ <attribute name="cabfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The name/location of where to create the .cab file.]]></short-description>
+ <description><![CDATA[
+ The name/location of where to create the .cab file.
+ ]]></description>
+ </attribute>
+ <attribute name="compress" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, compress the files otherwise only store them.]]></short-description>
+ <description><![CDATA[
+ If true, compress the files otherwise only store them.
+ ]]></description>
+ </attribute>
+ <attribute name="options" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets additional cabarc options that are not supported directly.]]></short-description>
+ <description><![CDATA[
+ Sets additional cabarc options that are not supported directly.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, display cabarc output.]]></short-description>
+ <description><![CDATA[
+ If true, display cabarc output.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files to archive.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files to archive.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="cccheckin" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.clearcase.CCCheckin"
+ >
+
+ <short-description><![CDATA[Performs ClearCase checkin.]]></short-description>
+ <description>
+ <![CDATA[Performs ClearCase checkin.
+
+ <p>
+ The following attributes are interpreted:
+ <table border="1">
+ <tr>
+ <th>Attribute</th>
+ <th>Values</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>viewpath</td>
+ <td>Path to the ClearCase view file or directory that the command will operate on</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>comment</td>
+ <td>Specify a comment. Only one of comment or cfile may be used.</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>commentfile</td>
+ <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>nowarn</td>
+ <td>Suppress warning messages</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>preservetime</td>
+ <td>Preserve the modification time</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>keepcopy</td>
+ <td>Keeps a copy of the file with a .keep extension</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>identical</td>
+ <td>Allows the file to be checked in even if it is identical to the original</td>
+ <td>No</td>
+ <tr>
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="cleartooldir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where the cleartool executable is located.]]></short-description>
+ <description><![CDATA[
+ Set the directory where the cleartool executable is located.
+ ]]></description>
+ </attribute>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Comment string.]]></short-description>
+ <description><![CDATA[
+ Sets the comment string.
+ ]]></description>
+ </attribute>
+ <attribute name="commentfile" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies a file containing a comment.]]></short-description>
+ <description><![CDATA[
+ Specifies a file containing a comment.
+ ]]></description>
+ </attribute>
+ <attribute name="identical" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, allows the file to be checked in even
+ if it is identical to the original.]]></short-description>
+ <description><![CDATA[
+ If true, allows the file to be checked in even
+ if it is identical to the original.
+ ]]></description>
+ </attribute>
+ <attribute name="keepcopy" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, keeps a copy of the file with a .keep extension.]]></short-description>
+ <description><![CDATA[
+ If true, keeps a copy of the file with a .keep extension.
+ ]]></description>
+ </attribute>
+ <attribute name="nowarn" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, suppress warning messages.]]></short-description>
+ <description><![CDATA[
+ If true, suppress warning messages.
+ ]]></description>
+ </attribute>
+ <attribute name="preservetime" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, preserve the modification time.]]></short-description>
+ <description><![CDATA[
+ If true, preserve the modification time.
+ ]]></description>
+ </attribute>
+ <attribute name="viewpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the item in a ClearCase view to operate on.]]></short-description>
+ <description><![CDATA[
+ Set the path to the item in a ClearCase view to operate on.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="cccheckout" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.clearcase.CCCheckout"
+ >
+
+ <short-description><![CDATA[Performs ClearCase checkout.]]></short-description>
+ <description>
+ <![CDATA[Performs ClearCase checkout.
+
+ <p>
+ The following attributes are interpretted:
+ <table border="1">
+ <tr>
+ <th>Attribute</th>
+ <th>Values</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>viewpath</td>
+ <td>Path to the ClearCase view file or directory that the command will operate on</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>reserved</td>
+ <td>Specifies whether to check out the file as reserved or not</td>
+ <td>Yes</td>
+ <tr>
+ <tr>
+ <td>out</td>
+ <td>Creates a writable file under a different filename</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>nodata</td>
+ <td>Checks out the file but does not create an editable file containing its data</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>branch</td>
+ <td>Specify a branch to check out the file to</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>version</td>
+ <td>Allows checkout of a version other than main latest</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>nowarn</td>
+ <td>Suppress warning messages</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>comment</td>
+ <td>Specify a comment. Only one of comment or cfile may be used.</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>commentfile</td>
+ <td>Specify a file containing a comment. Only one of comment or cfile may be used.</td>
+ <td>No</td>
+ <tr>
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="branch" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specify a branch to check out the file to.]]></short-description>
+ <description><![CDATA[
+ Specify a branch to check out the file to.
+ ]]></description>
+ </attribute>
+ <attribute name="cleartooldir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where the cleartool executable is located.]]></short-description>
+ <description><![CDATA[
+ Set the directory where the cleartool executable is located.
+ ]]></description>
+ </attribute>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Comment string.]]></short-description>
+ <description><![CDATA[
+ Sets the comment string.
+ ]]></description>
+ </attribute>
+ <attribute name="commentfile" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies a file containing a comment.]]></short-description>
+ <description><![CDATA[
+ Specifies a file containing a comment.
+ ]]></description>
+ </attribute>
+ <attribute name="nodata" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, checks out the file but does not create an
+ editable file containing its data.]]></short-description>
+ <description><![CDATA[
+ If true, checks out the file but does not create an
+ editable file containing its data.
+ ]]></description>
+ </attribute>
+ <attribute name="nowarn" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, warning messages are suppressed.]]></short-description>
+ <description><![CDATA[
+ If true, warning messages are suppressed.
+ ]]></description>
+ </attribute>
+ <attribute name="out" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Creates a writable file under a different filename.]]></short-description>
+ <description><![CDATA[
+ Creates a writable file under a different filename.
+ ]]></description>
+ </attribute>
+ <attribute name="reserved" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, checks out the file as reserved.]]></short-description>
+ <description><![CDATA[
+ If true, checks out the file as reserved.
+ ]]></description>
+ </attribute>
+ <attribute name="version" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, allows checkout of a version other than main latest.]]></short-description>
+ <description><![CDATA[
+ If true, allows checkout of a version other than main latest.
+ ]]></description>
+ </attribute>
+ <attribute name="viewpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the item in a ClearCase view to operate on.]]></short-description>
+ <description><![CDATA[
+ Set the path to the item in a ClearCase view to operate on.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ccmcheckin" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckin"
+ >
+
+ <short-description><![CDATA[Performs Continuus checkin command.]]></short-description>
+ <description>
+ <![CDATA[Performs Continuus checkin command.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="ccmdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where the ccm executable is located.]]></short-description>
+ <description><![CDATA[
+ Set the directory where the ccm executable is located.
+ ]]></description>
+ </attribute>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies a comment.]]></short-description>
+ <description><![CDATA[
+ Specifies a comment.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the file that the command will operate on.]]></short-description>
+ <description><![CDATA[
+ Sets the path to the file that the command will operate on.
+ ]]></description>
+ </attribute>
+ <attribute name="task" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the task number used to check
+ in the file (may use 'default').]]></short-description>
+ <description><![CDATA[
+ Specifies the task number used to check
+ in the file (may use 'default').
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ccmcheckintask" category="scm"
+ classname="org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckinDefault"
+ >
+
+ <short-description><![CDATA[Performs Continuus Checkin Default task command.]]></short-description>
+ <description>
+ <![CDATA[Performs Continuus Checkin Default task command.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="ccmdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where the ccm executable is located.]]></short-description>
+ <description><![CDATA[
+ Set the directory where the ccm executable is located.
+ ]]></description>
+ </attribute>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies a comment.]]></short-description>
+ <description><![CDATA[
+ Specifies a comment.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the file that the command will operate on.]]></short-description>
+ <description><![CDATA[
+ Sets the path to the file that the command will operate on.
+ ]]></description>
+ </attribute>
+ <attribute name="task" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the task number used to check
+ in the file (may use 'default').]]></short-description>
+ <description><![CDATA[
+ Specifies the task number used to check
+ in the file (may use 'default').
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ccmcheckout" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ccm.CCMCheckout"
+ >
+
+ <short-description><![CDATA[Performs Continuus checkout command.]]></short-description>
+ <description>
+ <![CDATA[Performs Continuus checkout command.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="ccmdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where the ccm executable is located.]]></short-description>
+ <description><![CDATA[
+ Set the directory where the ccm executable is located.
+ ]]></description>
+ </attribute>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies a comment.]]></short-description>
+ <description><![CDATA[
+ Specifies a comment.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the file that the command will operate on.]]></short-description>
+ <description><![CDATA[
+ Sets the path to the file that the command will operate on.
+ ]]></description>
+ </attribute>
+ <attribute name="task" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the task number used to check
+ in the file (may use 'default').]]></short-description>
+ <description><![CDATA[
+ Specifies the task number used to check
+ in the file (may use 'default').
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ccmcreatetask" category="scm"
+ classname="org.apache.tools.ant.taskdefs.optional.ccm.CCMCreateTask"
+ >
+
+ <short-description><![CDATA[Creates new Continuus ccm task and sets it as the default.]]></short-description>
+ <description>
+ <![CDATA[Creates new Continuus ccm task and sets it as the default.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="ccmdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where the ccm executable is located.]]></short-description>
+ <description><![CDATA[
+ Set the directory where the ccm executable is located.
+ ]]></description>
+ </attribute>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies a comment.]]></short-description>
+ <description><![CDATA[
+ Specifies a comment.
+ ]]></description>
+ </attribute>
+ <attribute name="platform" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the target platform.]]></short-description>
+ <description><![CDATA[
+ Specifies the target platform.
+ ]]></description>
+ </attribute>
+ <attribute name="release" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specify the CCM release.]]></short-description>
+ <description><![CDATA[
+ Specify the CCM release.
+ ]]></description>
+ </attribute>
+ <attribute name="resolver" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the resolver.]]></short-description>
+ <description><![CDATA[
+ Specifies the resolver.
+ ]]></description>
+ </attribute>
+ <attribute name="subsystem" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the subsystem.]]></short-description>
+ <description><![CDATA[
+ Specifies the subsystem.
+ ]]></description>
+ </attribute>
+ <attribute name="task" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the task number used to checkin
+ the file (may use 'default').]]></short-description>
+ <description><![CDATA[
+ Specifies the task number used to checkin
+ the file (may use 'default').
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ccmreconfigure" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ccm.CCMReconfigure"
+ >
+
+ <short-description><![CDATA[Task allows to reconfigure a project, recurcively or not]]></short-description>
+ <description>
+ <![CDATA[Task allows to reconfigure a project, recurcively or not]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="ccmdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where the ccm executable is located.]]></short-description>
+ <description><![CDATA[
+ Set the directory where the ccm executable is located.
+ ]]></description>
+ </attribute>
+ <attribute name="ccmproject" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Ccm project on which the operation is applied.]]></short-description>
+ <description><![CDATA[
+ Sets the ccm project on which the operation is applied.
+ ]]></description>
+ </attribute>
+ <attribute name="recurse" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, recurse on subproject (default false).]]></short-description>
+ <description><![CDATA[
+ If true, recurse on subproject (default false).
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, do a verbose reconfigure operation (default false).]]></short-description>
+ <description><![CDATA[
+ If true, do a verbose reconfigure operation (default false).
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ccuncheckout" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.clearcase.CCUnCheckout"
+ >
+
+ <short-description><![CDATA[Performs ClearCase UnCheckout command.]]></short-description>
+ <description>
+ <![CDATA[Performs ClearCase UnCheckout command.
+
+ <p>
+ The following attributes are interpretted:
+ <table border="1">
+ <tr>
+ <th>Attribute</th>
+ <th>Values</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>viewpath</td>
+ <td>Path to the ClearCase view file or directory that the command will operate on</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>keepcopy</td>
+ <td>Specifies whether to keep a copy of the file with a .keep extension or not</td>
+ <td>No</td>
+ <tr>
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="cleartooldir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where the cleartool executable is located.]]></short-description>
+ <description><![CDATA[
+ Set the directory where the cleartool executable is located.
+ ]]></description>
+ </attribute>
+ <attribute name="keepcopy" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, keep a copy of the file with a .keep extension.]]></short-description>
+ <description><![CDATA[
+ If true, keep a copy of the file with a .keep extension.
+ ]]></description>
+ </attribute>
+ <attribute name="viewpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the item in a ClearCase view to operate on.]]></short-description>
+ <description><![CDATA[
+ Set the path to the item in a ClearCase view to operate on.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ccupdate" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.clearcase.CCUpdate"
+ >
+
+ <short-description><![CDATA[Performs a ClearCase Update command.]]></short-description>
+ <description>
+ <![CDATA[Performs a ClearCase Update command.
+
+ <p>
+ The following attributes are interpretted:
+ <table border="1">
+ <tr>
+ <th>Attribute</th>
+ <th>Values</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>viewpath</td>
+ <td>Path to the ClearCase view file or directory that the command will operate on</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>graphical</td>
+ <td>Displays a graphical dialog during the update</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>log</td>
+ <td>Specifies a log file for ClearCase to write to</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>overwrite</td>
+ <td>Specifies whether to overwrite hijacked files or not</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>rename</td>
+ <td>Specifies that hijacked files should be renamed with a .keep extension</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>currenttime</td>
+ <td>Specifies that modification time should be written as the current time. Either currenttime or preservetime can be specified.</td>
+ <td>No</td>
+ <tr>
+ <tr>
+ <td>preservetime</td>
+ <td>Specifies that modification time should preserved from the VOB time. Either currenttime or preservetime can be specified.</td>
+ <td>No</td>
+ <tr>
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="cleartooldir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where the cleartool executable is located.]]></short-description>
+ <description><![CDATA[
+ Set the directory where the cleartool executable is located.
+ ]]></description>
+ </attribute>
+ <attribute name="currenttime" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, modification time should be written as the current time.]]></short-description>
+ <description><![CDATA[
+ If true, modification time should be written as the current time.
+ Either currenttime or preservetime can be specified.
+ ]]></description>
+ </attribute>
+ <attribute name="graphical" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, displays a graphical dialog during the update.]]></short-description>
+ <description><![CDATA[
+ If true, displays a graphical dialog during the update.
+ ]]></description>
+ </attribute>
+ <attribute name="log" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Log file where cleartool records
+ the status of the command.]]></short-description>
+ <description><![CDATA[
+ Sets the log file where cleartool records
+ the status of the command.
+ ]]></description>
+ </attribute>
+ <attribute name="overwrite" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, overwrite hijacked files.]]></short-description>
+ <description><![CDATA[
+ If true, overwrite hijacked files.
+ ]]></description>
+ </attribute>
+ <attribute name="preservetime" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, modification time should be preserved from the VOB time.]]></short-description>
+ <description><![CDATA[
+ If true, modification time should be preserved from the VOB time.
+ Either currenttime or preservetime can be specified.
+ ]]></description>
+ </attribute>
+ <attribute name="rename" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, hijacked files are renamed with a .keep extension.]]></short-description>
+ <description><![CDATA[
+ If true, hijacked files are renamed with a .keep extension.
+ ]]></description>
+ </attribute>
+ <attribute name="viewpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the item in a ClearCase view to operate on.]]></short-description>
+ <description><![CDATA[
+ Set the path to the item in a ClearCase view to operate on.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="checksum" category="control"
+ classname="org.apache.tools.ant.taskdefs.Checksum"
+ matchingTask="true">
+
+ <short-description><![CDATA[Used to create or verify file checksums.]]></short-description>
+ <description>
+ <![CDATA[Used to create or verify file checksums.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="algorithm" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the algorithm to be used to compute the checksum.]]></short-description>
+ <description><![CDATA[
+ Specifies the algorithm to be used to compute the checksum.
+ Defaults to "MD5". Other popular algorithms like "SHA" may be used as well.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File for which the checksum is to be calculated.]]></short-description>
+ <description><![CDATA[
+ Sets the file for which the checksum is to be calculated.
+ ]]></description>
+ </attribute>
+ <attribute name="fileext" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[File extension that is be to used to
+ create or identify destination file.]]></short-description>
+ <description><![CDATA[
+ Sets the file extension that is be to used to
+ create or identify destination file.
+ ]]></description>
+ </attribute>
+ <attribute name="forceoverwrite" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether or not to overwrite existing file irrespective of
+ whether it is newer than
+ the source file.]]></short-description>
+ <description><![CDATA[
+ Whether or not to overwrite existing file irrespective of
+ whether it is newer than
+ the source file. Defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Property to hold the generated checksum.]]></short-description>
+ <description><![CDATA[
+ Sets the property to hold the generated checksum.
+ ]]></description>
+ </attribute>
+ <attribute name="provider" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[MessageDigest algorithm provider to be used
+ to calculate the checksum.]]></short-description>
+ <description><![CDATA[
+ Sets the MessageDigest algorithm provider to be used
+ to calculate the checksum.
+ ]]></description>
+ </attribute>
+ <attribute name="readbuffersize" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[The size of the read buffer to use.]]></short-description>
+ <description><![CDATA[
+ The size of the read buffer to use.
+ ]]></description>
+ </attribute>
+ <attribute name="verifyproperty" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Verify property.]]></short-description>
+ <description><![CDATA[
+ Sets the verify property. This project property holds
+ the result of a checksum verification - "true" or "false"
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Files to generate checksums for.]]></short-description>
+ <description>
+ <![CDATA[Files to generate checksums for.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="chmod" category="filesystem"
+ classname="org.apache.tools.ant.taskdefs.Chmod"
+ >
+
+ <short-description><![CDATA[Chmod equivalent for unix-like environments.]]></short-description>
+ <description>
+ <![CDATA[Chmod equivalent for unix-like environments.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="append" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether output should be appended to or overwrite an existing file.]]></short-description>
+ <description><![CDATA[
+ Whether output should be appended to or overwrite an existing file.
+ Defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="defaultexcludes" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether default exclusions should be used or not.]]></short-description>
+ <description><![CDATA[
+ Sets whether default exclusions should be used or not.
+ ]]></description>
+ </attribute>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory where target files are to be placed.]]></short-description>
+ <description><![CDATA[
+ The directory where target files are to be placed.
+ ]]></description>
+ </attribute>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory which holds the files whose permissions must be changed.]]></short-description>
+ <description><![CDATA[
+ The directory which holds the files whose permissions must be changed.
+ ]]></description>
+ </attribute>
+ <attribute name="excludes" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set of exclude patterns.]]></short-description>
+ <description><![CDATA[
+ Sets the set of exclude patterns. Patterns may be separated by a comma
+ or a space.
+ ]]></description>
+ </attribute>
+ <attribute name="executable" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The command to execute.]]></short-description>
+ <description><![CDATA[
+ The command to execute.
+ ]]></description>
+ </attribute>
+ <attribute name="failifexecutionfails" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Stop the build if program cannot be started.]]></short-description>
+ <description><![CDATA[
+ Stop the build if program cannot be started. Defaults to true.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Fail if the command exits with a non-zero return code.]]></short-description>
+ <description><![CDATA[
+ Fail if the command exits with a non-zero return code.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file or single directory of which the permissions must be changed.]]></short-description>
+ <description><![CDATA[
+ The file or single directory of which the permissions must be changed.
+ ]]></description>
+ </attribute>
+ <attribute name="includes" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set of include patterns.]]></short-description>
+ <description><![CDATA[
+ Sets the set of include patterns. Patterns may be separated by a comma
+ or a space.
+ ]]></description>
+ </attribute>
+ <attribute name="newenvironment" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Do not propagate old environment when new environment variables are specified.]]></short-description>
+ <description><![CDATA[
+ Do not propagate old environment when new environment variables are specified.
+ ]]></description>
+ </attribute>
+ <attribute name="os" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[List of operating systems on which the command may be executed.]]></short-description>
+ <description><![CDATA[
+ List of operating systems on which the command may be executed.
+ ]]></description>
+ </attribute>
+ <attribute name="output" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File the output of the process is redirected to.]]></short-description>
+ <description><![CDATA[
+ File the output of the process is redirected to.
+ ]]></description>
+ </attribute>
+ <attribute name="outputproperty" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Property name whose value should be set to the output of
+ the process.]]></short-description>
+ <description><![CDATA[
+ Property name whose value should be set to the output of
+ the process.
+ ]]></description>
+ </attribute>
+ <attribute name="parallel" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, run the command only once, appending all files as arguments.]]></short-description>
+ <description><![CDATA[
+ If true, run the command only once, appending all files as arguments.
+ If false, command will be executed once for every file. Defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="perm" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The new permissions.]]></short-description>
+ <description><![CDATA[
+ The new permissions.
+ ]]></description>
+ </attribute>
+ <attribute name="relative" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the filenames should be passed on the command line as
+ absolute or relative pathnames.]]></short-description>
+ <description><![CDATA[
+ Whether the filenames should be passed on the command line as
+ absolute or relative pathnames. Paths are relative to the base
+ directory of the corresponding fileset for source files or the
+ dest attribute for target files.
+ ]]></description>
+ </attribute>
+ <attribute name="resultproperty" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of a property in which the return code of the
+ command should be stored.]]></short-description>
+ <description><![CDATA[
+ The name of a property in which the return code of the
+ command should be stored. Only of interest if failonerror=false.
+ ]]></description>
+ </attribute>
+ <attribute name="skipemptyfilesets" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If no source files have been found or are newer than their
+ corresponding target files, do not run the command.]]></short-description>
+ <description><![CDATA[
+ If no source files have been found or are newer than their
+ corresponding target files, do not run the command.
+ ]]></description>
+ </attribute>
+ <attribute name="type" type="org.apache.tools.ant.taskdefs.ExecuteOn.FileDirBoth"
+ briefType="&quot;file&quot;, &quot;dir&quot;, &quot;both&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the command works only on files, directories or both?.]]></short-description>
+ <description><![CDATA[
+ Whether the command works only on files, directories or both?
+ ]]></description>
+ </attribute>
+ <attribute name="vmlauncher" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, launch new process with VM, otherwise use the OS's shell.]]></short-description>
+ <description><![CDATA[
+ If true, launch new process with VM, otherwise use the OS's shell.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="env" type="org.apache.tools.ant.types.Environment.Variable"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an environment variable to the launched process.]]></short-description>
+ <description>
+ <![CDATA[Add an environment variable to the launched process.]]>
+ </description>
+ </element>
+
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Source files to operate upon.]]></short-description>
+ <description>
+ <![CDATA[Source files to operate upon.]]>
+ </description>
+ </element>
+
+ <element name="arg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a command-line argument.]]></short-description>
+ <description>
+ <![CDATA[Adds a command-line argument.]]>
+ </description>
+ </element>
+
+ <element name="exclude" type="org.apache.tools.ant.types.PatternSet.NameEntry"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a name entry on the exclude list.]]></short-description>
+ <description>
+ <![CDATA[Add a name entry on the exclude list.]]>
+ </description>
+ </element>
+
+ <element name="include" type="org.apache.tools.ant.types.PatternSet.NameEntry"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a name entry on the include list.]]></short-description>
+ <description>
+ <![CDATA[Add a name entry on the include list.]]>
+ </description>
+ </element>
+
+ <element name="mapper" type="org.apache.tools.ant.types.Mapper"
+ briefType="Mapper"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Mapper to use for mapping source files to target files.]]></short-description>
+ <description>
+ <![CDATA[Mapper to use for mapping source files to target files.]]>
+ </description>
+ </element>
+
+ <element name="patternset" type="org.apache.tools.ant.types.PatternSet"
+ briefType="Patternset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a set of patterns.]]></short-description>
+ <description>
+ <![CDATA[Add a set of patterns.]]>
+ </description>
+ </element>
+
+ <element name="srcfile" type="org.apache.tools.ant.types.Commandline.Marker"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Marker that indicates where the name of the source file should
+ be put on the command line.]]></short-description>
+ <description>
+ <![CDATA[Marker that indicates where the name of the source file should
+ be put on the command line.]]>
+ </description>
+ </element>
+
+ <element name="targetfile" type="org.apache.tools.ant.types.Commandline.Marker"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Marker that indicates where the name of the target file should
+ be put on the command line.]]></short-description>
+ <description>
+ <![CDATA[Marker that indicates where the name of the target file should
+ be put on the command line.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="concat" category="other"
+ classname="org.apache.tools.ant.taskdefs.Concat"
+ >
+
+ <short-description><![CDATA[This class contains the 'concat' task, used to concatenate a series of files into a single stream.]]></short-description>
+ <description>
+ <![CDATA[This class contains the 'concat' task, used to concatenate a series
+ of files into a single stream. The destination of this stream may
+ be the system console, or a file. The following is a sample
+ invocation:
+
+ <pre>
+ &lt;concat destfile=&quot;${build.dir}/index.xml&quot;
+ append=&quot;false&quot;&gt;
+
+ &lt;fileset dir=&quot;${xml.root.dir}&quot;
+ includes=&quot;*.xml&quot; /&gt;
+
+ &lt;/concat&gt;
+ </pre>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="append" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Behavior when the destination file exists.]]></short-description>
+ <description><![CDATA[
+ Sets the behavior when the destination file exists. If set to
+ <code>true</code> the stream data will be appended to the
+ existing file, otherwise the existing file will be
+ overwritten. Defaults to <code>false</code>.
+ ]]></description>
+ </attribute>
+ <attribute name="destfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination file, or uses the console if not specified.]]></short-description>
+ <description><![CDATA[
+ Sets the destination file, or uses the console if not specified.
+ ]]></description>
+ </attribute>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Encoding for the input files, used when displaying the
+ data via the console.]]></short-description>
+ <description><![CDATA[
+ Sets the encoding for the input files, used when displaying the
+ data via the console.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="filelist" type="org.apache.tools.ant.types.FileList"
+ briefType="Filelist"
+ required="NOTDEFINED">
+ <short-description><![CDATA[List of files to concatenate.]]></short-description>
+ <description>
+ <![CDATA[List of files to concatenate.]]>
+ </description>
+ </element>
+
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Set of files to concatenate.]]></short-description>
+ <description>
+ <![CDATA[Set of files to concatenate.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ <body >
+ <description><![CDATA[
+ This method adds text which appears in the 'concat' element.
+ ]]></description>
+ </body>
+
+ </structure>
+
+</task>
+
+
+<task name="condition" category="control"
+ classname="org.apache.tools.ant.taskdefs.ConditionTask"
+ >
+
+ <short-description><![CDATA[Task to set a property conditionally using &lt;uptodate&gt;, &lt;available&gt;, and many other supported conditions.]]></short-description>
+ <description>
+ <![CDATA[Task to set a property conditionally using &lt;uptodate&gt;, &lt;available&gt;,
+ and many other supported conditions.
+
+ <p>This task supports boolean logic as well as pluggable conditions
+ to decide, whether a property should be set.</p>
+
+ <p>This task does not extend Task to take advantage of
+ ConditionBase.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the property to set.]]></short-description>
+ <description><![CDATA[
+ The name of the property to set. Required.
+ ]]></description>
+ </attribute>
+ <attribute name="value" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The value for the property to set, if condition evaluates to true.]]></short-description>
+ <description><![CDATA[
+ The value for the property to set, if condition evaluates to true.
+ Defaults to "true".
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="and" type="org.apache.tools.ant.taskdefs.condition.And"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an &lt;and&gt; condition "container".]]></short-description>
+ <description>
+ <![CDATA[Add an &lt;and&gt; condition "container".]]>
+ </description>
+ </element>
+
+ <element name="available" type="org.apache.tools.ant.taskdefs.Available"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an &lt;available&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add an &lt;available&gt; condition.]]>
+ </description>
+ </element>
+
+ <element name="checksum" type="org.apache.tools.ant.taskdefs.Checksum"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an &lt;checksum&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add an &lt;checksum&gt; condition.]]>
+ </description>
+ </element>
+
+ <element name="contains" type="org.apache.tools.ant.taskdefs.condition.Contains"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a &lt;contains&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add a &lt;contains&gt; condition.]]>
+ </description>
+ </element>
+
+ <element name="equals" type="org.apache.tools.ant.taskdefs.condition.Equals"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an &lt;equals&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add an &lt;equals&gt; condition.]]>
+ </description>
+ </element>
+
+ <element name="filesmatch" type="org.apache.tools.ant.taskdefs.condition.FilesMatch"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a &lt;filesmatch&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add a &lt;filesmatch&gt; condition.]]>
+ </description>
+ </element>
+
+ <element name="http" type="org.apache.tools.ant.taskdefs.condition.Http"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an &lt;http&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add an &lt;http&gt; condition.]]>
+ </description>
+ </element>
+
+ <element name="isfalse" type="org.apache.tools.ant.taskdefs.condition.IsFalse"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a &lt;isfalse&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add a &lt;isfalse&gt; condition.]]>
+ </description>
+ </element>
+
+ <element name="isset" type="org.apache.tools.ant.taskdefs.condition.IsSet"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an &lt;isset&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add an &lt;isset&gt; condition.]]>
+ </description>
+ </element>
+
+ <element name="istrue" type="org.apache.tools.ant.taskdefs.condition.IsTrue"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a &lt;istrue&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add a &lt;istrue&gt; condition.]]>
+ </description>
+ </element>
+
+ <element name="not" type="org.apache.tools.ant.taskdefs.condition.Not"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an &lt;not&gt; condition "container".]]></short-description>
+ <description>
+ <![CDATA[Add an &lt;not&gt; condition "container".]]>
+ </description>
+ </element>
+
+ <element name="or" type="org.apache.tools.ant.taskdefs.condition.Or"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an &lt;or&gt; condition "container".]]></short-description>
+ <description>
+ <![CDATA[Add an &lt;or&gt; condition "container".]]>
+ </description>
+ </element>
+
+ <element name="os" type="org.apache.tools.ant.taskdefs.condition.Os"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an &lt;os&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add an &lt;os&gt; condition.]]>
+ </description>
+ </element>
+
+ <element name="socket" type="org.apache.tools.ant.taskdefs.condition.Socket"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a &lt;socket&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add a &lt;socket&gt; condition.]]>
+ </description>
+ </element>
+
+ <element name="uptodate" type="org.apache.tools.ant.taskdefs.UpToDate"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an &lt;uptodate&gt; condition.]]></short-description>
+ <description>
+ <![CDATA[Add an &lt;uptodate&gt; condition.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="copy" category="filesystem"
+ classname="org.apache.tools.ant.taskdefs.Copy"
+ >
+
+ <short-description><![CDATA[Copies a file or directory to a new file or directory.]]></short-description>
+ <description>
+ <![CDATA[Copies a file or directory to a new file
+ or directory. Files are only copied if the source file is newer
+ than the destination file, or when the destination file does not
+ exist. It is possible to explicitly overwrite existing files.</p>
+
+ <p>This implementation is based on Arnout Kuiper's initial design
+ document, the following mailing list discussions, and the
+ copyfile/copydir tasks.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Character encoding.]]></short-description>
+ <description><![CDATA[
+ Sets the character encoding
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If false, note errors to the output but keep going.]]></short-description>
+ <description><![CDATA[
+ If false, note errors to the output but keep going.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Single source file to copy.]]></short-description>
+ <description><![CDATA[
+ Sets a single source file to copy.
+ ]]></description>
+ </attribute>
+ <attribute name="filtering" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, enables filtering.]]></short-description>
+ <description><![CDATA[
+ If true, enables filtering.
+ ]]></description>
+ </attribute>
+ <attribute name="flatten" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[When copying directory trees, the files can be "flattened"
+ into a single directory.]]></short-description>
+ <description><![CDATA[
+ When copying directory trees, the files can be "flattened"
+ into a single directory. If there are multiple files with
+ the same name in the source directory tree, only the first
+ file will be copied into the "flattened" directory, unless
+ the forceoverwrite attribute is true.
+ ]]></description>
+ </attribute>
+ <attribute name="includeemptydirs" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Used to copy empty directories.]]></short-description>
+ <description><![CDATA[
+ Used to copy empty directories.
+ ]]></description>
+ </attribute>
+ <attribute name="overwrite" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Overwrite any existing destination file(s).]]></short-description>
+ <description><![CDATA[
+ Overwrite any existing destination file(s).
+ ]]></description>
+ </attribute>
+ <attribute name="preservelastmodified" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Give the copied files the same last modified time as the original files.]]></short-description>
+ <description><![CDATA[
+ Give the copied files the same last modified time as the original files.
+ ]]></description>
+ </attribute>
+ <attribute name="todir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory.]]></short-description>
+ <description><![CDATA[
+ Sets the destination directory.
+ ]]></description>
+ </attribute>
+ <attribute name="tofile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination file.]]></short-description>
+ <description><![CDATA[
+ Sets the destination file.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Used to force listing of all names of copied files.]]></short-description>
+ <description><![CDATA[
+ Used to force listing of all names of copied files.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files to copy.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files to copy.]]>
+ </description>
+ </element>
+
+ <element name="filterchain" type="org.apache.tools.ant.types.FilterChain"
+ briefType="FilterChain"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a FilterChain.]]></short-description>
+ <description>
+ <![CDATA[Adds a FilterChain.]]>
+ </description>
+ </element>
+
+ <element name="filterset" type="org.apache.tools.ant.types.FilterSet"
+ briefType="Filterset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a filterset.]]></short-description>
+ <description>
+ <![CDATA[Adds a filterset.]]>
+ </description>
+ </element>
+
+ <element name="mapper" type="org.apache.tools.ant.types.Mapper"
+ briefType="Mapper"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Defines the mapper to map source to destination files.]]></short-description>
+ <description>
+ <![CDATA[Defines the mapper to map source to destination files.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="copydir" category="other"
+ classname="org.apache.tools.ant.taskdefs.Copydir"
+ deprecated="true"
+ matchingTask="true">
+
+ <short-description><![CDATA[Copies a directory.]]></short-description>
+ <description>
+ <![CDATA[Copies a directory.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ <attribute name="filtering" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ <attribute name="flatten" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ <attribute name="forceoverwrite" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="copyfile" category="other"
+ classname="org.apache.tools.ant.taskdefs.Copyfile"
+ deprecated="true"
+ >
+
+ <short-description><![CDATA[Copies a file.]]></short-description>
+ <description>
+ <![CDATA[Copies a file.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ <attribute name="filtering" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ <attribute name="forceoverwrite" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="csc" category="dotnet"
+ classname="org.apache.tools.ant.taskdefs.optional.dotnet.CSharp"
+ matchingTask="true">
+
+ <short-description><![CDATA[Compiles C# source into executables or modules.]]></short-description>
+ <description>
+ <![CDATA[Compiles C# source into executables or modules.
+
+ The task will only work on win2K until other platforms support
+ csc.exe or an equivalent. CSC.exe must be on the execute path too. <p>
+
+ All parameters are optional: &lt;csc/&gt; should suffice to produce a debug
+ build of all *.cs files. References to external files do require explicit
+ enumeration, so are one of the first attributes to consider adding. <p>
+
+ The task is a directory based task, so attributes like <b>includes="*.cs"
+ </b> and <b>excludes="broken.cs"</b> can be used to control the files pulled
+ in. By default, all *.cs files from the project folder down are included in
+ the command. When this happens the output file -if not specified- is taken
+ as the first file in the list, which may be somewhat hard to control.
+ Specifying the output file with <b>'outfile'</b> seems prudent. <p>
+
+ <p>
+
+ TODO
+ <ol>
+ <li> is incremental build still broken in beta-1?
+ <li> is Win32Icon broken?
+ <li> all the missing options
+ </ol>
+ <p>
+
+ History
+ <Table>
+
+ <tr>
+
+ <td>
+ 0.3
+ </td>
+
+ <td>
+ Beta 1 edition
+ </td>
+
+ <td>
+ To avoid having to remember which assemblies to include, the task
+ automatically refers to the main dotnet libraries in Beta1.
+ </tr>
+
+ <tr>
+
+ <td>
+ 0.2
+ </td>
+
+ <td>
+ Slightly different
+ </td>
+
+ <td>
+ Split command execution to a separate class;
+ </tr>
+
+ <tr>
+
+ <td>
+ 0.1
+ </td>
+
+ <td>
+ "I can't believe it's so rudimentary"
+ </td>
+
+ <td>
+ First pass; minimal builds only support;
+ </tr>
+
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="additionalmodules" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Semicolon separated list of modules to refer to.]]></short-description>
+ <description><![CDATA[
+ Semicolon separated list of modules to refer to.
+ ]]></description>
+ </attribute>
+ <attribute name="debug" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Debug flag on or off.]]></short-description>
+ <description><![CDATA[
+ set the debug flag on or off.
+ ]]></description>
+ </attribute>
+ <attribute name="definitions" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Semicolon separated list of defined constants.]]></short-description>
+ <description><![CDATA[
+ Semicolon separated list of defined constants.
+ ]]></description>
+ </attribute>
+ <attribute name="destdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory of files to be compiled.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory of files to be compiled.
+ ]]></description>
+ </attribute>
+ <attribute name="destfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of exe/library to create.]]></short-description>
+ <description><![CDATA[
+ Set the name of exe/library to create.
+ ]]></description>
+ </attribute>
+ <attribute name="docfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File for generated XML documentation.]]></short-description>
+ <description><![CDATA[
+ file for generated XML documentation
+ ]]></description>
+ </attribute>
+ <attribute name="extraoptions" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Any extra options which are not explicitly supported
+ by this task.]]></short-description>
+ <description><![CDATA[
+ Any extra options which are not explicitly supported
+ by this task.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, fail on compilation errors.]]></short-description>
+ <description><![CDATA[
+ If true, fail on compilation errors.
+ ]]></description>
+ </attribute>
+ <attribute name="filealign" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[File alignment.]]></short-description>
+ <description><![CDATA[
+ Set the file alignment.
+ Valid values are 0,512, 1024, 2048, 4096, 8192,
+ and 16384, 0 means 'leave to the compiler'
+ ]]></description>
+ </attribute>
+ <attribute name="fullpaths" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, print the full path of files on errors.]]></short-description>
+ <description><![CDATA[
+ If true, print the full path of files on errors.
+ ]]></description>
+ </attribute>
+ <attribute name="includedefaultreferences" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, automatically includes the common assemblies
+ in dotnet, and tells the compiler to link in mscore.dll.
+
+ set the automatic reference inclusion flag on or off this flag controls
+ the string of references and the /nostdlib option in CSC.]]></short-description>
+ <description><![CDATA[
+ If true, automatically includes the common assemblies
+ in dotnet, and tells the compiler to link in mscore.dll.
+
+ set the automatic reference inclusion flag on or off this flag controls
+ the string of references and the /nostdlib option in CSC
+ ]]></description>
+ </attribute>
+ <attribute name="incremental" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Incremental compilation flag on or off.]]></short-description>
+ <description><![CDATA[
+ set the incremental compilation flag on or off.
+ ]]></description>
+ </attribute>
+ <attribute name="mainclass" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of main class for executables.]]></short-description>
+ <description><![CDATA[
+ Sets the name of main class for executables.
+ ]]></description>
+ </attribute>
+ <attribute name="noconfig" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[A flag that tells the compiler not to read in the compiler
+ settings files 'csc.rsp' in its bin directory and then the local directory.]]></short-description>
+ <description><![CDATA[
+ A flag that tells the compiler not to read in the compiler
+ settings files 'csc.rsp' in its bin directory and then the local directory
+ ]]></description>
+ </attribute>
+ <attribute name="optimize" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, enables optimization flag.]]></short-description>
+ <description><![CDATA[
+ If true, enables optimization flag.
+ ]]></description>
+ </attribute>
+ <attribute name="outputfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Output file.]]></short-description>
+ <description><![CDATA[
+ Set the output file
+ ]]></description>
+ </attribute>
+ <attribute name="referencefiles" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Path of references to include.]]></short-description>
+ <description><![CDATA[
+ Path of references to include.
+ Wildcards should work.
+ ]]></description>
+ </attribute>
+ <attribute name="references" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Semicolon separated list of DLLs to refer to.]]></short-description>
+ <description><![CDATA[
+ Semicolon separated list of DLLs to refer to.
+ ]]></description>
+ </attribute>
+ <attribute name="srcdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Source directory of the files to be compiled.]]></short-description>
+ <description><![CDATA[
+ Set the source directory of the files to be compiled.
+ ]]></description>
+ </attribute>
+ <attribute name="targettype" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Type of target.]]></short-description>
+ <description><![CDATA[
+ Set the type of target.
+ ]]></description>
+ </attribute>
+ <attribute name="unsafe" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, enables the unsafe keyword.]]></short-description>
+ <description><![CDATA[
+ If true, enables the unsafe keyword.
+ ]]></description>
+ </attribute>
+ <attribute name="utf8output" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, require all compiler output to be in UTF8 format.]]></short-description>
+ <description><![CDATA[
+ If true, require all compiler output to be in UTF8 format.
+ ]]></description>
+ </attribute>
+ <attribute name="warnlevel" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Level of warning currently between 1 and 4
+ with 4 being the strictest.]]></short-description>
+ <description><![CDATA[
+ Level of warning currently between 1 and 4
+ with 4 being the strictest.
+ ]]></description>
+ </attribute>
+ <attribute name="win32icon" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Filename of icon to include.]]></short-description>
+ <description><![CDATA[
+ Set the filename of icon to include.
+ ]]></description>
+ </attribute>
+ <attribute name="win32res" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Filename of a win32 resource (.RES) file to include.]]></short-description>
+ <description><![CDATA[
+ Sets the filename of a win32 resource (.RES) file to include.
+ This is not a .NET resource, but what Windows is used to.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="cvs" category="scm"
+ classname="org.apache.tools.ant.taskdefs.Cvs"
+ >
+
+ <short-description><![CDATA[Performs operations on a CVS repository. original 1.20 NOTE: This implementation has been moved to AbstractCvsTask with the addition of some accessors for extensibility.]]></short-description>
+ <description>
+ <![CDATA[Performs operations on a CVS repository.
+
+ original 1.20
+
+ NOTE: This implementation has been moved to AbstractCvsTask with
+ the addition of some accessors for extensibility.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="append" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to append output/error when redirecting to a file.]]></short-description>
+ <description><![CDATA[
+ Whether to append output/error when redirecting to a file.
+ ]]></description>
+ </attribute>
+ <attribute name="command" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The CVS command to execute.]]></short-description>
+ <description><![CDATA[
+ The CVS command to execute.
+ ]]></description>
+ </attribute>
+ <attribute name="compression" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, this is the same as compressionlevel="3".]]></short-description>
+ <description><![CDATA[
+ If true, this is the same as compressionlevel="3".
+ ]]></description>
+ </attribute>
+ <attribute name="compressionlevel" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[If set to a value 1-9 it adds -zN to the cvs command line, else
+ it disables compression.]]></short-description>
+ <description><![CDATA[
+ If set to a value 1-9 it adds -zN to the cvs command line, else
+ it disables compression.
+ ]]></description>
+ </attribute>
+ <attribute name="cvsroot" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The CVSROOT variable.]]></short-description>
+ <description><![CDATA[
+ The CVSROOT variable.
+ ]]></description>
+ </attribute>
+ <attribute name="cvsrsh" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The CVS_RSH variable.]]></short-description>
+ <description><![CDATA[
+ The CVS_RSH variable.
+ ]]></description>
+ </attribute>
+ <attribute name="date" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Use the most recent revision no later than the given date.]]></short-description>
+ <description><![CDATA[
+ Use the most recent revision no later than the given date.
+ ]]></description>
+ </attribute>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory where the checked out files should be placed.]]></short-description>
+ <description><![CDATA[
+ The directory where the checked out files should be placed.
+ ]]></description>
+ </attribute>
+ <attribute name="error" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file to direct standard error from the command.]]></short-description>
+ <description><![CDATA[
+ The file to direct standard error from the command.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Stop the build process if the command exits with
+ a return code other than 0.]]></short-description>
+ <description><![CDATA[
+ Stop the build process if the command exits with
+ a return code other than 0.
+ Defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="noexec" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, report only and don't change any files.]]></short-description>
+ <description><![CDATA[
+ If true, report only and don't change any files.
+ ]]></description>
+ </attribute>
+ <attribute name="output" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file to direct standard output from the command.]]></short-description>
+ <description><![CDATA[
+ The file to direct standard output from the command.
+ ]]></description>
+ </attribute>
+ <attribute name="package" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The package/module to operate upon.]]></short-description>
+ <description><![CDATA[
+ The package/module to operate upon.
+ ]]></description>
+ </attribute>
+ <attribute name="passfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Password file to read passwords from.]]></short-description>
+ <description><![CDATA[
+ Password file to read passwords from.
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Port used by CVS to communicate with the server.]]></short-description>
+ <description><![CDATA[
+ Port used by CVS to communicate with the server.
+ ]]></description>
+ </attribute>
+ <attribute name="quiet" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, suppress informational messages.]]></short-description>
+ <description><![CDATA[
+ If true, suppress informational messages.
+ ]]></description>
+ </attribute>
+ <attribute name="tag" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The tag of the package/module to operate upon.]]></short-description>
+ <description><![CDATA[
+ The tag of the package/module to operate upon.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="commandline" type="org.apache.tools.ant.types.Commandline"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds direct command-line to execute.]]></short-description>
+ <description>
+ <![CDATA[Adds direct command-line to execute.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="cvschangelog" category="other"
+ classname="org.apache.tools.ant.taskdefs.cvslib.ChangeLogTask"
+ >
+
+ <short-description><![CDATA[Examines the output of cvs log and group related changes together.]]></short-description>
+ <description>
+ <![CDATA[Examines the output of cvs log and group related changes together.
+
+ It produces an XML output representing the list of changes.
+ <PRE>
+ <FONT color=#0000ff>&lt;!-- Root element --&gt;</FONT>
+ <FONT color=#6a5acd>&lt;!ELEMENT</FONT> changelog <FONT color=#ff00ff>(entry</FONT><FONT color=#ff00ff>+</FONT><FONT color=#ff00ff>)</FONT><FONT color=#6a5acd>&gt;</FONT>
+ <FONT color=#0000ff>&lt;!-- CVS Entry --&gt;</FONT>
+ <FONT color=#6a5acd>&lt;!ELEMENT</FONT> entry <FONT color=#ff00ff>(date,author,file</FONT><FONT color=#ff00ff>+</FONT><FONT color=#ff00ff>,msg)</FONT><FONT color=#6a5acd>&gt;</FONT>
+ <FONT color=#0000ff>&lt;!-- Date of cvs entry --&gt;</FONT>
+ <FONT color=#6a5acd>&lt;!ELEMENT</FONT> date <FONT color=#ff00ff>(#PCDATA)</FONT><FONT color=#6a5acd>&gt;</FONT>
+ <FONT color=#0000ff>&lt;!-- Author of change --&gt;</FONT>
+ <FONT color=#6a5acd>&lt;!ELEMENT</FONT> author <FONT color=#ff00ff>(#PCDATA)</FONT><FONT color=#6a5acd>&gt;</FONT>
+ <FONT color=#0000ff>&lt;!-- List of files affected --&gt;</FONT>
+ <FONT color=#6a5acd>&lt;!ELEMENT</FONT> msg <FONT color=#ff00ff>(#PCDATA)</FONT><FONT color=#6a5acd>&gt;</FONT>
+ <FONT color=#0000ff>&lt;!-- File changed --&gt;</FONT>
+ <FONT color=#6a5acd>&lt;!ELEMENT</FONT> file <FONT color=#ff00ff>(name,revision,prevrevision</FONT><FONT color=#ff00ff>?</FONT><FONT color=#ff00ff>)</FONT><FONT color=#6a5acd>&gt;</FONT>
+ <FONT color=#0000ff>&lt;!-- Name of the file --&gt;</FONT>
+ <FONT color=#6a5acd>&lt;!ELEMENT</FONT> name <FONT color=#ff00ff>(#PCDATA)</FONT><FONT color=#6a5acd>&gt;</FONT>
+ <FONT color=#0000ff>&lt;!-- Revision number --&gt;</FONT>
+ <FONT color=#6a5acd>&lt;!ELEMENT</FONT> revision <FONT color=#ff00ff>(#PCDATA)</FONT><FONT color=#6a5acd>&gt;</FONT>
+ <FONT color=#0000ff>&lt;!-- Previous revision number --&gt;</FONT>
+ <FONT color=#6a5acd>&lt;!ELEMENT</FONT> prevrevision <FONT color=#ff00ff>(#PCDATA)</FONT><FONT color=#6a5acd>&gt;</FONT>
+ </PRE>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="daysinpast" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Number of days worth of log entries to process.]]></short-description>
+ <description><![CDATA[
+ Set the number of days worth of log entries to process.
+ ]]></description>
+ </attribute>
+ <attribute name="destfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Output file for the log.]]></short-description>
+ <description><![CDATA[
+ Set the output file for the log.
+ ]]></description>
+ </attribute>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Base dir for cvs.]]></short-description>
+ <description><![CDATA[
+ Set the base dir for cvs.
+ ]]></description>
+ </attribute>
+ <attribute name="end" type="java.util.Date"
+ briefType="Date" required="NOTDEFINED">
+ <short-description><![CDATA[Date at which the changelog should stop.]]></short-description>
+ <description><![CDATA[
+ Set the date at which the changelog should stop.
+ ]]></description>
+ </attribute>
+ <attribute name="start" type="java.util.Date"
+ briefType="Date" required="NOTDEFINED">
+ <short-description><![CDATA[Date at which the changelog should start.]]></short-description>
+ <description><![CDATA[
+ Set the date at which the changelog should start.
+ ]]></description>
+ </attribute>
+ <attribute name="usersfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Lookup list of user names & addresses.]]></short-description>
+ <description><![CDATA[
+ Set a lookup list of user names & addresses
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files about which cvs logs will be generated.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files about which cvs logs will be generated.]]>
+ </description>
+ </element>
+
+ <element name="user" type="org.apache.tools.ant.taskdefs.cvslib.CvsUser"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a user to list changelog knows about.]]></short-description>
+ <description>
+ <![CDATA[Add a user to list changelog knows about.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="cvspass" category="scm"
+ classname="org.apache.tools.ant.taskdefs.CVSPass"
+ >
+
+ <short-description><![CDATA[Adds an new entry to a CVS password file.]]></short-description>
+ <description>
+ <![CDATA[Adds an new entry to a CVS password file.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="cvsroot" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The CVS repository to add an entry for.]]></short-description>
+ <description><![CDATA[
+ The CVS repository to add an entry for.
+ ]]></description>
+ </attribute>
+ <attribute name="passfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Password file to add the entry to.]]></short-description>
+ <description><![CDATA[
+ Password file to add the entry to.
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Password to be added to the password file.]]></short-description>
+ <description><![CDATA[
+ Password to be added to the password file.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="cvstagdiff" category="other"
+ classname="org.apache.tools.ant.taskdefs.cvslib.CvsTagDiff"
+ >
+
+ <short-description><![CDATA[Examines the output of cvs rdiff between two tags.]]></short-description>
+ <description>
+ <![CDATA[Examines the output of cvs rdiff between two tags.
+
+ It produces an XML output representing the list of changes.
+ <PRE>
+ &lt;!-- Root element --&gt;
+ &lt;!ELEMENT tagdiff ( entry+ ) &gt;
+ &lt;!-- Start tag of the report --&gt;
+ &lt;!ATTLIST tagdiff startTag NMTOKEN #IMPLIED &gt;
+ &lt;!-- End tag of the report --&gt;
+ &lt;!ATTLIST tagdiff endTag NMTOKEN #IMPLIED &gt;
+ &lt;!-- Start date of the report --&gt;
+ &lt;!ATTLIST tagdiff startDate NMTOKEN #IMPLIED &gt;
+ &lt;!-- End date of the report --&gt;
+ &lt;!ATTLIST tagdiff endDate NMTOKEN #IMPLIED &gt;
+
+ &lt;!-- CVS tag entry --&gt;
+ &lt;!ELEMENT entry ( file ) &gt;
+ &lt;!-- File added, changed or removed --&gt;
+ &lt;!ELEMENT file ( name, revision?, prevrevision? ) &gt;
+ &lt;!-- Name of the file --&gt;
+ &lt;!ELEMENT name ( #PCDATA ) &gt;
+ &lt;!-- Revision number --&gt;
+ &lt;!ELEMENT revision ( #PCDATA ) &gt;
+ &lt;!-- Previous revision number --&gt;
+ &lt;!ELEMENT prevrevision ( #PCDATA ) &gt;
+ </PRE>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="compression" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, this is the same as compressionlevel="3".]]></short-description>
+ <description><![CDATA[
+ If true, this is the same as compressionlevel="3".
+ ]]></description>
+ </attribute>
+ <attribute name="compressionlevel" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[If set to a value 1-9 it adds -zN to the cvs command line, else
+ it disables compression.]]></short-description>
+ <description><![CDATA[
+ If set to a value 1-9 it adds -zN to the cvs command line, else
+ it disables compression.
+ ]]></description>
+ </attribute>
+ <attribute name="cvsroot" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The CVSROOT variable.]]></short-description>
+ <description><![CDATA[
+ The CVSROOT variable.
+ ]]></description>
+ </attribute>
+ <attribute name="cvsrsh" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The CVS_RSH variable.]]></short-description>
+ <description><![CDATA[
+ The CVS_RSH variable.
+ ]]></description>
+ </attribute>
+ <attribute name="destfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Output file for the diff.]]></short-description>
+ <description><![CDATA[
+ Set the output file for the diff.
+ ]]></description>
+ </attribute>
+ <attribute name="enddate" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[End date.]]></short-description>
+ <description><![CDATA[
+ Set the end date.
+ ]]></description>
+ </attribute>
+ <attribute name="endtag" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[End tag.]]></short-description>
+ <description><![CDATA[
+ Set the end tag.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Stop the build process if the command exits with
+ a return code other than 0.]]></short-description>
+ <description><![CDATA[
+ Stop the build process if the command exits with
+ a return code other than 0.
+ Defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="package" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The package/module to analyze.]]></short-description>
+ <description><![CDATA[
+ The package/module to analyze.
+ ]]></description>
+ </attribute>
+ <attribute name="passfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Password file to read passwords from.]]></short-description>
+ <description><![CDATA[
+ Password file to read passwords from.
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Port used by CVS to communicate with the server.]]></short-description>
+ <description><![CDATA[
+ Port used by CVS to communicate with the server.
+ ]]></description>
+ </attribute>
+ <attribute name="quiet" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, suppress informational messages.]]></short-description>
+ <description><![CDATA[
+ If true, suppress informational messages.
+ ]]></description>
+ </attribute>
+ <attribute name="startdate" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Start date.]]></short-description>
+ <description><![CDATA[
+ Set the start date.
+ ]]></description>
+ </attribute>
+ <attribute name="starttag" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Start tag.]]></short-description>
+ <description><![CDATA[
+ Set the start tag.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ddcreator" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.DDCreator"
+ matchingTask="true">
+
+ <short-description><![CDATA[Builds a serialized deployment descriptor given a text file description of the descriptor in the format supported by WebLogic.]]></short-description>
+ <description>
+ <![CDATA[Builds a serialized deployment descriptor given a text file description of the
+ descriptor in the format supported by WebLogic.
+
+ This ant task is a front end for the weblogic DDCreator tool.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="classpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used for this compilation.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used for this compilation.
+ ]]></description>
+ </attribute>
+ <attribute name="descriptors" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory from where the text descriptions of the deployment descriptors are
+ to be read.]]></short-description>
+ <description><![CDATA[
+ Set the directory from where the text descriptions of the deployment descriptors are
+ to be read.
+ ]]></description>
+ </attribute>
+ <attribute name="dest" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory into which the serialized deployment descriptors are to
+ be written.]]></short-description>
+ <description><![CDATA[
+ Set the directory into which the serialized deployment descriptors are to
+ be written.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="delete" category="filesystem"
+ classname="org.apache.tools.ant.taskdefs.Delete"
+ matchingTask="true">
+
+ <short-description><![CDATA[Deletes a file or directory, or set of files defined by a fileset.]]></short-description>
+ <description>
+ <![CDATA[Deletes a file or directory, or set of files defined by a fileset.
+ The original delete task would delete a file, or a set of files
+ using the include/exclude syntax. The deltree task would delete a
+ directory tree. This task combines the functionality of these two
+ originally distinct tasks.
+ <p>Currently Delete extends MatchingTask. This is intend <i>only</i>
+ to provide backwards compatibility for a release. The future position
+ is to use nested filesets exclusively.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="defaultexcludes" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether default exclusions should be used or not.]]></short-description>
+ <description><![CDATA[
+ Sets whether default exclusions should be used or not.
+ ]]></description>
+ </attribute>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Directory from which files are to be deleted.]]></short-description>
+ <description><![CDATA[
+ Set the directory from which files are to be deleted
+ ]]></description>
+ </attribute>
+ <attribute name="excludes" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set of exclude patterns.]]></short-description>
+ <description><![CDATA[
+ Sets the set of exclude patterns. Patterns may be separated by a comma
+ or a space.
+ ]]></description>
+ </attribute>
+ <attribute name="excludesfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the file containing the includes patterns.]]></short-description>
+ <description><![CDATA[
+ Sets the name of the file containing the includes patterns.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If false, note errors but continue.]]></short-description>
+ <description><![CDATA[
+ If false, note errors but continue.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of a single file to be removed.]]></short-description>
+ <description><![CDATA[
+ Set the name of a single file to be removed.
+ ]]></description>
+ </attribute>
+ <attribute name="includeemptydirs" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, delete empty directories.]]></short-description>
+ <description><![CDATA[
+ If true, delete empty directories.
+ ]]></description>
+ </attribute>
+ <attribute name="includes" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set of include patterns.]]></short-description>
+ <description><![CDATA[
+ Sets the set of include patterns. Patterns may be separated by a comma
+ or a space.
+ ]]></description>
+ </attribute>
+ <attribute name="includesfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the file containing the includes patterns.]]></short-description>
+ <description><![CDATA[
+ Sets the name of the file containing the includes patterns.
+ ]]></description>
+ </attribute>
+ <attribute name="quiet" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true and the file does not exist, do not display a diagnostic
+ message or modify the exit status to reflect an error.]]></short-description>
+ <description><![CDATA[
+ If true and the file does not exist, do not display a diagnostic
+ message or modify the exit status to reflect an error.
+ This means that if a file or directory cannot be deleted,
+ then no error is reported. This setting emulates the
+ -f option to the Unix &quot;rm&quot; command.
+ Default is false meaning things are &quot;noisy&quot;
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, list all names of deleted files.]]></short-description>
+ <description><![CDATA[
+ If true, list all names of deleted files.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files to be deleted.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files to be deleted.]]>
+ </description>
+ </element>
+
+ <element name="exclude" type="org.apache.tools.ant.types.PatternSet.NameEntry"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a name entry on the exclude list.]]></short-description>
+ <description>
+ <![CDATA[add a name entry on the exclude list]]>
+ </description>
+ </element>
+
+ <element name="excludesfile" type="org.apache.tools.ant.types.PatternSet.NameEntry"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a name entry on the include files list.]]></short-description>
+ <description>
+ <![CDATA[add a name entry on the include files list]]>
+ </description>
+ </element>
+
+ <element name="include" type="org.apache.tools.ant.types.PatternSet.NameEntry"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a name entry on the include list.]]></short-description>
+ <description>
+ <![CDATA[add a name entry on the include list]]>
+ </description>
+ </element>
+
+ <element name="includesfile" type="org.apache.tools.ant.types.PatternSet.NameEntry"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a name entry on the include files list.]]></short-description>
+ <description>
+ <![CDATA[add a name entry on the include files list]]>
+ </description>
+ </element>
+
+ <element name="patternset" type="org.apache.tools.ant.types.PatternSet"
+ briefType="Patternset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a set of patterns.]]></short-description>
+ <description>
+ <![CDATA[add a set of patterns]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="deltree" category="other"
+ classname="org.apache.tools.ant.taskdefs.Deltree"
+ deprecated="true"
+ >
+
+ <short-description><![CDATA[No Description.]]></short-description>
+ <description>
+ <![CDATA[]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Directory to be deleted.]]></short-description>
+ <description><![CDATA[
+ Set the directory to be deleted
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="depend" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.depend.Depend"
+ matchingTask="true">
+
+ <short-description><![CDATA[Generates a dependency file for a given set of classes.]]></short-description>
+ <description>
+ <![CDATA[Generates a dependency file for a given set of classes.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="cache" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Dependency cache file.]]></short-description>
+ <description><![CDATA[
+ Sets the dependency cache file.
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used for this dependency check.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used for this dependency check.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a classpath defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a classpath defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="closure" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, transitive dependencies are followed until the
+ closure of the dependency set if reached.]]></short-description>
+ <description><![CDATA[
+ If true, transitive dependencies are followed until the
+ closure of the dependency set if reached.
+ When not set, the depend task will only follow
+ direct dependencies between classes.
+ ]]></description>
+ </attribute>
+ <attribute name="destdir" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory where the compiled Java files exist.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory where the compiled Java files exist.
+ ]]></description>
+ </attribute>
+ <attribute name="dump" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, the dependency information will be written
+ to the debug level log.]]></short-description>
+ <description><![CDATA[
+ If true, the dependency information will be written
+ to the debug level log.
+ ]]></description>
+ </attribute>
+ <attribute name="srcdir" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Directories path to find the Java source files.]]></short-description>
+ <description><![CDATA[
+ Set the directories path to find the Java source files.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a classpath to be used for this dependency check.]]></short-description>
+ <description>
+ <![CDATA[Adds a classpath to be used for this dependency check.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="dependset" category="filesystem"
+ classname="org.apache.tools.ant.taskdefs.DependSet"
+ matchingTask="true">
+
+ <short-description><![CDATA[Examines and removes out of date target files.]]></short-description>
+ <description>
+ <![CDATA[Examines and removes out of date target files. If any of the target files
+ are out of date with respect to any of the source files, all target
+ files are removed. This is useful where dependencies cannot be
+ computed (for example, dynamically interpreted parameters or files
+ that need to stay in synch but are not directly linked) or where
+ the ant task in question could compute them but does not (for
+ example, the linked DTD for an XML file using the style task).
+
+ nested arguments:
+ <ul>
+ <li>srcfileset (fileset describing the source files to examine)
+ <li>srcfilelist (filelist describing the source files to examine)
+ <li>targetfileset (fileset describing the target files to examine)
+ <li>targetfilelist (filelist describing the target files to examine)
+ </ul>
+ At least one instance of either a fileset or filelist for both source and
+ target are required.
+ <p>
+ This task will examine each of the source files against each of the target
+ files. If any target files are out of date with respect to any of the source
+ files, all targets are removed. If any files named in a (src or target)
+ filelist do not exist, all targets are removed.
+ Hint: If missing files should be ignored, specify them as include patterns
+ in filesets, rather than using filelists.
+ </p><p>
+ This task attempts to optimize speed of dependency checking. It will stop
+ after the first out of date file is found and remove all targets, rather
+ than exhaustively checking every source vs target combination unnecessarily.
+ </p><p>
+ Example uses:
+ <ul><li>
+ Record the fact that an XML file must be up to date
+ with respect to its XSD (Schema file), even though the XML file
+ itself includes no reference to its XSD.
+ </li><li>
+ Record the fact that an XSL stylesheet includes other
+ sub-stylesheets
+ </li><li>
+ Record the fact that java files must be recompiled if the ant build
+ file changes
+ </li></ul>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ </attributes>
+
+ <elements>
+ <element name="srcfilelist" type="org.apache.tools.ant.types.FileList"
+ briefType="Filelist"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a list of source files.]]></short-description>
+ <description>
+ <![CDATA[Add a list of source files.]]>
+ </description>
+ </element>
+
+ <element name="srcfileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a set of source files.]]></short-description>
+ <description>
+ <![CDATA[Add a set of source files.]]>
+ </description>
+ </element>
+
+ <element name="targetfilelist" type="org.apache.tools.ant.types.FileList"
+ briefType="Filelist"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a list of target files.]]></short-description>
+ <description>
+ <![CDATA[Add a list of target files.]]>
+ </description>
+ </element>
+
+ <element name="targetfileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a set of target files.]]></short-description>
+ <description>
+ <![CDATA[Add a set of target files.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="dirname" category="property"
+ classname="org.apache.tools.ant.taskdefs.Dirname"
+ >
+
+ <short-description><![CDATA[Determines the directory name of the specified file.]]></short-description>
+ <description>
+ <![CDATA[Determines the directory name of the specified file.
+
+ This task can accept the following attributes:
+ <ul>
+ <li>file
+ <li>property
+ </ul>
+ Both <b>file</b> and <b>property</b> are required.
+ <p>
+ When this task executes, it will set the specified property to the
+ value of the specified file up to, but not including, the last path
+ element. If file is a file, the directory will be the current
+ directory.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Path to take the dirname of.]]></short-description>
+ <description><![CDATA[
+ Path to take the dirname of.
+ ]]></description>
+ </attribute>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the property to set.]]></short-description>
+ <description><![CDATA[
+ The name of the property to set.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ear" category="packaging"
+ classname="org.apache.tools.ant.taskdefs.Ear"
+ matchingTask="true">
+
+ <short-description><![CDATA[Creates a EAR archive.]]></short-description>
+ <description>
+ <![CDATA[Creates a EAR archive. Based on WAR task]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="appxml" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File to incorporate as application.xml.]]></short-description>
+ <description><![CDATA[
+ File to incorporate as application.xml.
+ ]]></description>
+ </attribute>
+ <attribute name="basedir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Directory from which to archive files; optional.]]></short-description>
+ <description><![CDATA[
+ Directory from which to archive files; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="compress" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether we want to compress the files or only store them;
+ optional, default=true;.]]></short-description>
+ <description><![CDATA[
+ Whether we want to compress the files or only store them;
+ optional, default=true;
+ ]]></description>
+ </attribute>
+ <attribute name="destfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file to create; required.]]></short-description>
+ <description><![CDATA[
+ The file to create; required.
+ ]]></description>
+ </attribute>
+ <attribute name="duplicate" type="org.apache.tools.ant.taskdefs.Zip.Duplicate"
+ briefType="&quot;add&quot;, &quot;preserve&quot;, &quot;fail&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Sets behavior for when a duplicate file is about to be added -
+ one of <code>keep</code>, <code>skip</code> or <code>overwrite</code>.]]></short-description>
+ <description><![CDATA[
+ Sets behavior for when a duplicate file is about to be added -
+ one of <code>keep</code>, <code>skip</code> or <code>overwrite</code>.
+ Possible values are: <code>keep</code> (keep both
+ of the files); <code>skip</code> (keep the first version
+ of the file found); <code>overwrite</code> overwrite the file
+ with the new file
+ Default for zip tasks is <code>keep</code>
+ ]]></description>
+ </attribute>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Encoding to use for filenames, defaults to the platform's
+ default encoding.]]></short-description>
+ <description><![CDATA[
+ Encoding to use for filenames, defaults to the platform's
+ default encoding.
+
+ <p>For a list of possible values see <a
+ href="http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html">http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html</a>.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="filesonly" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, emulate Sun's jar utility by not adding parent directories;
+ optional, defaults to false.]]></short-description>
+ <description><![CDATA[
+ If true, emulate Sun's jar utility by not adding parent directories;
+ optional, defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="index" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set whether or not to create an index list for classes.]]></short-description>
+ <description><![CDATA[
+ Set whether or not to create an index list for classes.
+ This may speed up classloading in some cases.
+ ]]></description>
+ </attribute>
+ <attribute name="manifest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The manifest file to use.]]></short-description>
+ <description><![CDATA[
+ The manifest file to use. This can be either the location of a manifest,
+ or the name of a jar added through a fileset. If its the name of an added
+ jar, the task expects the manifest to be in the jar at META-INF/MANIFEST.MF.
+ ]]></description>
+ </attribute>
+ <attribute name="update" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, updates an existing file, otherwise overwrite
+ any existing one; optional defaults to false.]]></short-description>
+ <description><![CDATA[
+ If true, updates an existing file, otherwise overwrite
+ any existing one; optional defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="whenempty" type="org.apache.tools.ant.taskdefs.Zip.WhenEmpty"
+ briefType="&quot;fail&quot;, &quot;skip&quot;, &quot;create&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Sets behavior of the task when no files match.]]></short-description>
+ <description><![CDATA[
+ Sets behavior of the task when no files match.
+ Possible values are: <code>fail</code> (throw an exception
+ and halt the build); <code>skip</code> (do not create
+ any archive, but issue a warning); <code>create</code>
+ (make an archive with no entries).
+ Default for zip tasks is <code>skip</code>;
+ for jar tasks, <code>create</code>.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="archives" type="org.apache.tools.ant.types.ZipFileSet"
+ briefType="ZipFileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds zipfileset.]]></short-description>
+ <description>
+ <![CDATA[Adds zipfileset.]]>
+ </description>
+ </element>
+
+ <element name="manifest" type="org.apache.tools.ant.taskdefs.Manifest"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Allows the manifest for the archive file to be provided inline
+ in the buildfile rather than in an external file.]]></short-description>
+ <description>
+ <![CDATA[Allows the manifest for the archive file to be provided inline
+ in the buildfile rather than in an external file.]]>
+ </description>
+ </element>
+
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files.]]>
+ </description>
+ </element>
+
+ <element name="metainf" type="org.apache.tools.ant.types.ZipFileSet"
+ briefType="ZipFileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a zipfileset to include in the META-INF directory.]]></short-description>
+ <description>
+ <![CDATA[Adds a zipfileset to include in the META-INF directory.]]>
+ </description>
+ </element>
+
+ <element name="zipgroupfileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a group of zip files.]]></short-description>
+ <description>
+ <![CDATA[Adds a group of zip files.]]>
+ </description>
+ </element>
+
+ <element name="zipfileset" type="org.apache.tools.ant.types.ZipFileSet"
+ briefType="ZipFileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files that can be
+ read from an archive and be given a prefix/fullpath.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files that can be
+ read from an archive and be given a prefix/fullpath.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="echo" category="utility"
+ classname="org.apache.tools.ant.taskdefs.Echo"
+ >
+
+ <short-description><![CDATA[Writes a message to the Ant logging facilities.]]></short-description>
+ <description>
+ <![CDATA[Writes a message to the Ant logging facilities.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="append" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, append to existing file.]]></short-description>
+ <description><![CDATA[
+ If true, append to existing file.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File to write to.]]></short-description>
+ <description><![CDATA[
+ File to write to.
+ ]]></description>
+ </attribute>
+ <attribute name="level" type="org.apache.tools.ant.taskdefs.Echo.EchoLevel"
+ briefType="&quot;error&quot;, &quot;warning&quot;, &quot;info&quot;, &quot;verbose&quot;, &quot;debug&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Logging level.]]></short-description>
+ <description><![CDATA[
+ Set the logging level. Level should be one of
+ <ul>
+ <li>error</li>
+ <li>warning</li>
+ <li>info</li>
+ <li>verbose</li>
+ <li>debug</li>
+ </ul>
+ <p>The default is &quot;warning&quot; to ensure that messages are
+ displayed by default when using the -quiet command line option.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="message" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Message to write.]]></short-description>
+ <description><![CDATA[
+ Message to write.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ <body >
+ <description><![CDATA[
+ Set a multiline message.
+ ]]></description>
+ </body>
+
+ </structure>
+
+</task>
+
+
+<task name="echoproperties" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.EchoProperties"
+ >
+
+ <short-description><![CDATA[Displays all the current properties in the build.]]></short-description>
+ <description>
+ <![CDATA[Displays all the current properties in the build. The output can be sent to
+ a file if desired. <P>
+
+ Attribute "destfile" defines a file to send the properties to. This can be
+ processed as a standard property file later. <P>
+
+ Attribute "prefix" defines a prefix which is used to filter the properties
+ only those properties starting with this prefix will be echoed. <P>
+
+ By default, the "failonerror" attribute is enabled. If an error occurs while
+ writing the properties to a file, and this attribute is enabled, then a
+ BuildException will be thrown. If disabled, then IO errors will be reported
+ as a log statement, but no error will be thrown. <P>
+
+ Examples: <pre>
+ &lt;echoproperties /&gt;
+ </pre> Report the current properties to the log. <P>
+
+ <pre>
+ &lt;echoproperties destfile="my.properties" /&gt;
+ </pre> Report the current properties to the file "my.properties", and will
+ fail the build if the file could not be created or written to. <P>
+
+ <pre>
+ &lt;echoproperties destfile="my.properties" failonerror="false"
+ prefix="ant" /&gt;
+ </pre> Report all properties beginning with 'ant' to the file
+ "my.properties", and will log a message if the file could not be created or
+ written to, but will still allow the build to continue.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="destfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File to store the property output.]]></short-description>
+ <description><![CDATA[
+ Set a file to store the property output. If this is never specified,
+ then the output will be sent to the Ant log.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, the task will fail if an error occurs writing the properties
+ file, otherwise errors are just logged.]]></short-description>
+ <description><![CDATA[
+ If true, the task will fail if an error occurs writing the properties
+ file, otherwise errors are just logged.
+ ]]></description>
+ </attribute>
+ <attribute name="prefix" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[If the prefix is set, then only properties which start with this
+ prefix string will be recorded.]]></short-description>
+ <description><![CDATA[
+ If the prefix is set, then only properties which start with this
+ prefix string will be recorded. If this is never set, or it is set
+ to an empty string or <tt>null</tt>, then all properties will be
+ recorded. <P>
+
+ For example, if the property is set as:
+ <PRE>&lt;echoproperties prefix="ant." /&gt;</PRE>
+ then the property "ant.home" will be recorded, but "ant-example"
+ will not.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ejbc" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.Ejbc"
+ matchingTask="true">
+
+ <short-description><![CDATA[Builds EJB support classes using WebLogic's ejbc tool from a directory containing a set of deployment descriptors.]]></short-description>
+ <description>
+ <![CDATA[Builds EJB support classes using WebLogic's ejbc tool from a directory containing
+ a set of deployment descriptors.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="classpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used for this compilation.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used for this compilation.
+ ]]></description>
+ </attribute>
+ <attribute name="descriptors" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory from where the serialized deployment descriptors are
+ to be read.]]></short-description>
+ <description><![CDATA[
+ Set the directory from where the serialized deployment descriptors are
+ to be read.
+ ]]></description>
+ </attribute>
+ <attribute name="dest" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory into which the support classes, RMI stubs, etc are to be written.]]></short-description>
+ <description><![CDATA[
+ Set the directory into which the support classes, RMI stubs, etc are to be written.
+ ]]></description>
+ </attribute>
+ <attribute name="keepgenerated" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[If true, ejbc will keep the
+ intermediate Java files used to build the class files.]]></short-description>
+ <description><![CDATA[
+ If true, ejbc will keep the
+ intermediate Java files used to build the class files.
+ This can be useful when debugging.
+ ]]></description>
+ </attribute>
+ <attribute name="manifest" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the generated manifest file.]]></short-description>
+ <description><![CDATA[
+ Set the name of the generated manifest file.
+
+ For each EJB that is processed an entry is created in this file. This can then be used
+ to create a jar file for dploying the beans.
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory containing the source code for the home interface, remote interface
+ and public key class definitions.]]></short-description>
+ <description><![CDATA[
+ Set the directory containing the source code for the home interface, remote interface
+ and public key class definitions.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ejbjar" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.EjbJar"
+ matchingTask="true">
+
+ <short-description><![CDATA[Provides automated EJB JAR file creation.]]></short-description>
+ <description>
+ <![CDATA[Provides automated EJB JAR file creation.
+ <p>
+ Extends the
+ MatchingTask class provided in the default ant distribution to provide a
+ directory scanning EJB jarfile generator.
+ </p>
+
+ <p>
+ The task works by taking the deployment descriptors one at a time and
+ parsing them to locate the names of the classes which should be placed in
+ the jar. The classnames are translated to java.io.Files by replacing
+ periods with File.separatorChar and resolving the generated filename as a
+ relative path under the srcDir attribute. All necessary files are then
+ assembled into a jarfile. One jarfile is constructed for each deployment
+ descriptor found.
+ </p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="basejarname" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Base name of the EJB JAR that is to be created if it is not
+ to be determined from the name of the deployment descriptor files.]]></short-description>
+ <description><![CDATA[
+ Set the base name of the EJB JAR that is to be created if it is not
+ to be determined from the name of the deployment descriptor files.
+ ]]></description>
+ </attribute>
+ <attribute name="basenameterminator" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The string which terminates the bean name.]]></short-description>
+ <description><![CDATA[
+ The string which terminates the bean name.
+ The convention used by this task is
+ that bean descriptors are named as the BeanName with some suffix. The
+ baseNameTerminator string separates the bean name and the suffix and
+ is used to determine the bean name.
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to use when resolving classes for inclusion in the jar.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to use when resolving classes for inclusion in the jar.
+ ]]></description>
+ </attribute>
+ <attribute name="dependency" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Analyzer to use when adding in dependencies to the JAR.]]></short-description>
+ <description><![CDATA[
+ Set the analyzer to use when adding in dependencies to the JAR.
+ ]]></description>
+ </attribute>
+ <attribute name="descriptordir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Descriptor directory.]]></short-description>
+ <description><![CDATA[
+ Set the descriptor directory. The descriptor directory contains the
+ EJB deployment descriptors. These are XML files that declare the
+ properties of a bean in a particular deployment scenario. Such
+ properties include, for example, the transactional nature of the bean
+ and the security access control to the bean's methods.
+ ]]></description>
+ </attribute>
+ <attribute name="destdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory. The EJB jar files will be written into
+ this directory. The jar files that exist in this directory are also
+ used when determining if the contents of the jar file have changed.
+ Note that this parameter is only used if no deployment tools are
+ specified. Typically each deployment tool will specify its own
+ destination directory.
+ ]]></description>
+ </attribute>
+ <attribute name="flatdestdir" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Controls whether the
+ destination JARs are written out in the destination directory with
+ the same hierarchical structure from which the deployment descriptors
+ have been read.]]></short-description>
+ <description><![CDATA[
+ Controls whether the
+ destination JARs are written out in the destination directory with
+ the same hierarchical structure from which the deployment descriptors
+ have been read. If this is set to true the generated EJB jars are
+ written into the root of the destination directory, otherwise they
+ are written out in the same relative position as the deployment
+ descriptors in the descriptor directory.
+ ]]></description>
+ </attribute>
+ <attribute name="genericjarsuffix" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Suffix for the generated jar file.]]></short-description>
+ <description><![CDATA[
+ Set the suffix for the generated jar file. When generic jars are
+ generated, they have a suffix which is appended to the the bean name
+ to create the name of the jar file. Note that this suffix includes
+ the extension fo te jar file and should therefore end with an
+ appropriate extension such as .jar or .ear
+ ]]></description>
+ </attribute>
+ <attribute name="manifest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Manifest file to use when jarring.]]></short-description>
+ <description><![CDATA[
+ Set the Manifest file to use when jarring. As of EJB 1.1, manifest
+ files are no longer used to configure the EJB. However, they still
+ have a vital importance if the EJB is intended to be packaged in an
+ EAR file. By adding "Class-Path" settings to a Manifest file, the EJB
+ can look for classes inside the EAR file itself, allowing for easier
+ deployment. This is outlined in the J2EE specification, and all J2EE
+ components are meant to support it.
+ ]]></description>
+ </attribute>
+ <attribute name="naming" type="org.apache.tools.ant.taskdefs.optional.ejb.EjbJar.NamingScheme"
+ briefType="&quot;ejb-name&quot;, &quot;directory&quot;, &quot;descriptor&quot;, &quot;basejarname&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Naming scheme used to determine the name of the generated jars
+ from the deployment descriptor.]]></short-description>
+ <description><![CDATA[
+ Set the naming scheme used to determine the name of the generated jars
+ from the deployment descriptor
+ ]]></description>
+ </attribute>
+ <attribute name="srcdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Source directory, which is the directory that
+ contains the classes that will be added to the EJB jar.]]></short-description>
+ <description><![CDATA[
+ Sets the source directory, which is the directory that
+ contains the classes that will be added to the EJB jar. Typically
+ this will include the home and remote interfaces and the bean class.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="borland" type="org.apache.tools.ant.taskdefs.optional.ejb.BorlandDeploymentTool"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a deployment tool for Borland server.]]></short-description>
+ <description>
+ <![CDATA[Adds a deployment tool for Borland server.]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds to the classpath used to locate the super classes and
+ interfaces of the classes that will make up the EJB JAR.]]></short-description>
+ <description>
+ <![CDATA[Adds to the classpath used to locate the super classes and
+ interfaces of the classes that will make up the EJB JAR.]]>
+ </description>
+ </element>
+
+ <element name="dtd" type="org.apache.tools.ant.taskdefs.optional.ejb.EjbJar.DTDLocation"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create a DTD location record.]]></short-description>
+ <description>
+ <![CDATA[Create a DTD location record. This stores the location of a DTD. The
+ DTD is identified by its public Id. The location may either be a file
+ location or a resource location.]]>
+ </description>
+ </element>
+
+ <element name="iplanet" type="org.apache.tools.ant.taskdefs.optional.ejb.IPlanetDeploymentTool"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a deployment tool for iPlanet Application Server.]]></short-description>
+ <description>
+ <![CDATA[Adds a deployment tool for iPlanet Application Server.]]>
+ </description>
+ </element>
+
+ <element name="jboss" type="org.apache.tools.ant.taskdefs.optional.ejb.JbossDeploymentTool"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a deployment tool for JBoss server.]]></short-description>
+ <description>
+ <![CDATA[Adds a deployment tool for JBoss server.]]>
+ </description>
+ </element>
+
+ <element name="jonas" type="org.apache.tools.ant.taskdefs.optional.ejb.JonasDeploymentTool"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a deployment tool for JOnAS server.]]></short-description>
+ <description>
+ <![CDATA[Adds a deployment tool for JOnAS server.]]>
+ </description>
+ </element>
+
+ <element name="support" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a fileset for support elements.]]></short-description>
+ <description>
+ <![CDATA[Adds a fileset for support elements.]]>
+ </description>
+ </element>
+
+ <element name="weblogic" type="org.apache.tools.ant.taskdefs.optional.ejb.WeblogicDeploymentTool"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a deployment tool for Weblogic server.]]></short-description>
+ <description>
+ <![CDATA[Adds a deployment tool for Weblogic server.]]>
+ </description>
+ </element>
+
+ <element name="weblogictoplink" type="org.apache.tools.ant.taskdefs.optional.ejb.WeblogicTOPLinkDeploymentTool"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a deployment tool for Weblogic when using the Toplink
+ Object-Relational mapping.]]></short-description>
+ <description>
+ <![CDATA[Adds a deployment tool for Weblogic when using the Toplink
+ Object-Relational mapping.]]>
+ </description>
+ </element>
+
+ <element name="websphere" type="org.apache.tools.ant.taskdefs.optional.ejb.WebsphereDeploymentTool"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a deployment tool for Websphere 4.0 server.]]></short-description>
+ <description>
+ <![CDATA[Adds a deployment tool for Websphere 4.0 server.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="exec" category="control"
+ classname="org.apache.tools.ant.taskdefs.ExecTask"
+ >
+
+ <short-description><![CDATA[Executes a given command if the os platform is appropriate.]]></short-description>
+ <description>
+ <![CDATA[Executes a given command if the os platform is appropriate.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="append" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether output should be appended to or overwrite an existing file.]]></short-description>
+ <description><![CDATA[
+ Whether output should be appended to or overwrite an existing file.
+ Defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The working directory of the process.]]></short-description>
+ <description><![CDATA[
+ The working directory of the process.
+ ]]></description>
+ </attribute>
+ <attribute name="executable" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The command to execute.]]></short-description>
+ <description><![CDATA[
+ The command to execute.
+ ]]></description>
+ </attribute>
+ <attribute name="failifexecutionfails" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Stop the build if program cannot be started.]]></short-description>
+ <description><![CDATA[
+ Stop the build if program cannot be started. Defaults to true.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Fail if the command exits with a non-zero return code.]]></short-description>
+ <description><![CDATA[
+ Fail if the command exits with a non-zero return code.
+ ]]></description>
+ </attribute>
+ <attribute name="newenvironment" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Do not propagate old environment when new environment variables are specified.]]></short-description>
+ <description><![CDATA[
+ Do not propagate old environment when new environment variables are specified.
+ ]]></description>
+ </attribute>
+ <attribute name="os" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[List of operating systems on which the command may be executed.]]></short-description>
+ <description><![CDATA[
+ List of operating systems on which the command may be executed.
+ ]]></description>
+ </attribute>
+ <attribute name="output" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File the output of the process is redirected to.]]></short-description>
+ <description><![CDATA[
+ File the output of the process is redirected to.
+ ]]></description>
+ </attribute>
+ <attribute name="outputproperty" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Property name whose value should be set to the output of
+ the process.]]></short-description>
+ <description><![CDATA[
+ Property name whose value should be set to the output of
+ the process.
+ ]]></description>
+ </attribute>
+ <attribute name="resultproperty" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of a property in which the return code of the
+ command should be stored.]]></short-description>
+ <description><![CDATA[
+ The name of a property in which the return code of the
+ command should be stored. Only of interest if failonerror=false.
+ ]]></description>
+ </attribute>
+ <attribute name="vmlauncher" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, launch new process with VM, otherwise use the OS's shell.]]></short-description>
+ <description><![CDATA[
+ If true, launch new process with VM, otherwise use the OS's shell.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="env" type="org.apache.tools.ant.types.Environment.Variable"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an environment variable to the launched process.]]></short-description>
+ <description>
+ <![CDATA[Add an environment variable to the launched process.]]>
+ </description>
+ </element>
+
+ <element name="arg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a command-line argument.]]></short-description>
+ <description>
+ <![CDATA[Adds a command-line argument.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="fail" category="control"
+ classname="org.apache.tools.ant.taskdefs.Exit"
+ >
+
+ <short-description><![CDATA[Exits the active build, giving an additional message if available.]]></short-description>
+ <description>
+ <![CDATA[Exits the active build, giving an additional message
+ if available.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="if" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Only fail if a property of the given name exists in the current project.]]></short-description>
+ <description><![CDATA[
+ Only fail if a property of the given name exists in the current project.
+ ]]></description>
+ </attribute>
+ <attribute name="message" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[A message giving further information on why the build exited.]]></short-description>
+ <description><![CDATA[
+ A message giving further information on why the build exited.
+ ]]></description>
+ </attribute>
+ <attribute name="unless" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Only fail if a property of the given name does not
+ exist in the current project.]]></short-description>
+ <description><![CDATA[
+ Only fail if a property of the given name does not
+ exist in the current project.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ <body >
+ <description><![CDATA[
+ Set a multiline message.
+ ]]></description>
+ </body>
+
+ </structure>
+
+</task>
+
+
+<task name="filter" category="filesystem"
+ classname="org.apache.tools.ant.taskdefs.Filter"
+ >
+
+ <short-description><![CDATA[Sets a token filter that is used by the file copy tasks to do token substitution.]]></short-description>
+ <description>
+ <![CDATA[Sets a token filter that is used by the file copy tasks
+ to do token substitution. Sets mutiple tokens by
+ reading these from a file.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="filtersfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file from which the filters must be read.]]></short-description>
+ <description><![CDATA[
+ The file from which the filters must be read.
+ This file must be a formatted as a property file.
+ ]]></description>
+ </attribute>
+ <attribute name="token" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The token string without @ delimiters.]]></short-description>
+ <description><![CDATA[
+ The token string without @ delimiters.
+ ]]></description>
+ </attribute>
+ <attribute name="value" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The string that should replace the token during filtered copies.]]></short-description>
+ <description><![CDATA[
+ The string that should replace the token during filtered copies.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="fixcrlf" category="filesystem"
+ classname="org.apache.tools.ant.taskdefs.FixCRLF"
+ matchingTask="true">
+
+ <short-description><![CDATA[Converts text source files to local OS formatting conventions, as well as repair text files damaged by misconfigured or misguided editors or file transfer programs.]]></short-description>
+ <description>
+ <![CDATA[Converts text source files to local OS formatting conventions, as
+ well as repair text files damaged by misconfigured or misguided editors or
+ file transfer programs.
+ <p>
+ This task can take the following arguments:
+ <ul>
+ <li>srcdir
+ <li>destdir
+ <li>include
+ <li>exclude
+ <li>cr
+ <li>eol
+ <li>tab
+ <li>eof
+ <li>encoding
+ </ul>
+ Of these arguments, only <b>sourcedir</b> is required.
+ <p>
+ When this task executes, it will scan the srcdir based on the include
+ and exclude properties.
+ <p>
+ This version generalises the handling of EOL characters, and allows
+ for CR-only line endings (which I suspect is the standard on Macs.)
+ Tab handling has also been generalised to accommodate any tabwidth
+ from 2 to 80, inclusive. Importantly, it will leave untouched any
+ literal TAB characters embedded within string or character constants.
+ <p>
+ <em>Warning:</em> do not run on binary files.
+ <em>Caution:</em> run with care on carefully formatted files.
+ This may sound obvious, but if you don't specify asis, presume that
+ your files are going to be modified. If "tabs" is "add" or "remove",
+ whitespace characters may be added or removed as necessary. Similarly,
+ for CR's - in fact "eol"="crlf" or cr="add" can result in cr
+ characters being removed in one special case accommodated, i.e.,
+ CRCRLF is regarded as a single EOL to handle cases where other
+ programs have converted CRLF into CRCRLF.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="destdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination where the fixed files should be placed.]]></short-description>
+ <description><![CDATA[
+ Set the destination where the fixed files should be placed.
+ Default is to replace the original file.
+ ]]></description>
+ </attribute>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the encoding Ant expects the files to be in -
+ defaults to the platforms default encoding.]]></short-description>
+ <description><![CDATA[
+ Specifies the encoding Ant expects the files to be in -
+ defaults to the platforms default encoding.
+ ]]></description>
+ </attribute>
+ <attribute name="eof" type="org.apache.tools.ant.taskdefs.FixCRLF.AddAsisRemove"
+ briefType="&quot;add&quot;, &quot;asis&quot;, &quot;remove&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Specify how DOS EOF (control-z) characters are to be handled.]]></short-description>
+ <description><![CDATA[
+ Specify how DOS EOF (control-z) characters are to be handled.
+ ]]></description>
+ </attribute>
+ <attribute name="eol" type="org.apache.tools.ant.taskdefs.FixCRLF.CrLf"
+ briefType="&quot;asis&quot;, &quot;cr&quot;, &quot;lf&quot;, &quot;crlf&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Specify how EndOfLine characters are to be handled.]]></short-description>
+ <description><![CDATA[
+ Specify how EndOfLine characters are to be handled.
+ ]]></description>
+ </attribute>
+ <attribute name="javafiles" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set to true if modifying Java source files.]]></short-description>
+ <description><![CDATA[
+ Set to true if modifying Java source files.
+ ]]></description>
+ </attribute>
+ <attribute name="srcdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Source dir to find the source text files.]]></short-description>
+ <description><![CDATA[
+ Set the source dir to find the source text files.
+ ]]></description>
+ </attribute>
+ <attribute name="tab" type="org.apache.tools.ant.taskdefs.FixCRLF.AddAsisRemove"
+ briefType="&quot;add&quot;, &quot;asis&quot;, &quot;remove&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Specify how tab characters are to be handled.]]></short-description>
+ <description><![CDATA[
+ Specify how tab characters are to be handled.
+ ]]></description>
+ </attribute>
+ <attribute name="tablength" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Specify tab length in characters.]]></short-description>
+ <description><![CDATA[
+ Specify tab length in characters.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ftp" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.net.FTP"
+ >
+
+ <short-description><![CDATA[Basic FTP client.]]></short-description>
+ <description>
+ <![CDATA[Basic FTP client. Performs the following actions:
+ <ul>
+ <li> <strong>send</strong> - send files to a remote server. This is the
+ default action.</li>
+ <li> <strong>get</strong> - retrive files from a remote server.</li>
+ <li> <strong>del</strong> - delete files from a remote server.</li>
+ <li> <strong>list</strong> - create a file listing.</li>
+ <li> <strong>chmod</strong> - change unix file permissions.</li>
+ </ul>
+ <strong>Note:</strong> Some FTP servers - notably the Solaris server - seem
+ to hold data ports open after a "retr" operation, allowing them to timeout
+ instead of shutting them down cleanly. This happens in active or passive
+ mode, and the ports will remain open even after ending the FTP session. FTP
+ "send" operations seem to close ports immediately. This behavior may cause
+ problems on some systems when downloading large sets of files.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="action" type="org.apache.tools.ant.taskdefs.optional.net.FTP.Action"
+ briefType="&quot;send&quot;, &quot;put&quot;, &quot;recv&quot;, &quot;get&quot;, &quot;del&quot;, &quot;delete&quot;, &quot;list&quot;, &quot;mkdir&quot;, &quot;chmod&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[FTP action to be taken.]]></short-description>
+ <description><![CDATA[
+ Sets the FTP action to be taken. Currently accepts "put", "get", "del",
+ "mkdir", "chmod" and "list".
+ ]]></description>
+ </attribute>
+ <attribute name="binary" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, uses binary mode, otherwise text mode (default is binary).]]></short-description>
+ <description><![CDATA[
+ If true, uses binary mode, otherwise text mode (default is binary).
+ ]]></description>
+ </attribute>
+ <attribute name="chmod" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[File permission mode (Unix only) for files sent to the server.]]></short-description>
+ <description><![CDATA[
+ Sets the file permission mode (Unix only) for files sent to the server.
+ ]]></description>
+ </attribute>
+ <attribute name="depends" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set to true to transmit only files that are new or changed from their
+ remote counterparts.]]></short-description>
+ <description><![CDATA[
+ Set to true to transmit only files that are new or changed from their
+ remote counterparts. The default is to transmit all files.
+ ]]></description>
+ </attribute>
+ <attribute name="ignorenoncriticalerrors" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to skip errors on directory creation.
+ (and maybe later other server specific errors).]]></short-description>
+ <description><![CDATA[
+ set the flag to skip errors on directory creation.
+ (and maybe later other server specific errors)
+ ]]></description>
+ </attribute>
+ <attribute name="listing" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The output file for the "list" action.]]></short-description>
+ <description><![CDATA[
+ The output file for the "list" action. This attribute is ignored for
+ any other actions.
+ ]]></description>
+ </attribute>
+ <attribute name="newer" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[A synonym for <tt>depends</tt>.]]></short-description>
+ <description><![CDATA[
+ A synonym for <tt>depends</tt>. Set to true to transmit only new or changed
+ files.
+ ]]></description>
+ </attribute>
+ <attribute name="passive" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies whether to use passive mode.]]></short-description>
+ <description><![CDATA[
+ Specifies whether to use passive mode. Set to true if you are behind a
+ firewall and cannot connect without it. Passive mode is disabled by
+ default.
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Login password for the given user id.]]></short-description>
+ <description><![CDATA[
+ Sets the login password for the given user id.
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[FTP port used by the remote server.]]></short-description>
+ <description><![CDATA[
+ Sets the FTP port used by the remote server.
+ ]]></description>
+ </attribute>
+ <attribute name="remotedir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Remote directory where files will be placed.]]></short-description>
+ <description><![CDATA[
+ Sets the remote directory where files will be placed. This may be a
+ relative or absolute path, and must be in the path syntax expected by
+ the remote server. No correction of path syntax will be performed.
+ ]]></description>
+ </attribute>
+ <attribute name="separator" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Remote file separator character.]]></short-description>
+ <description><![CDATA[
+ Sets the remote file separator character. This normally defaults to the
+ Unix standard forward slash, but can be manually overridden using this
+ call if the remote server requires some other separator. Only the first
+ character of the string is used.
+ ]]></description>
+ </attribute>
+ <attribute name="server" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[FTP server to send files to.]]></short-description>
+ <description><![CDATA[
+ Sets the FTP server to send files to.
+ ]]></description>
+ </attribute>
+ <attribute name="skipfailedtransfers" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, enables unsuccessful file put, delete and get
+ operations to be skipped with a warning and the remainder
+ of the files still transferred.]]></short-description>
+ <description><![CDATA[
+ If true, enables unsuccessful file put, delete and get
+ operations to be skipped with a warning and the remainder
+ of the files still transferred.
+ ]]></description>
+ </attribute>
+ <attribute name="umask" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Default mask for file creation on a unix server.]]></short-description>
+ <description><![CDATA[
+ Sets the default mask for file creation on a unix server.
+ ]]></description>
+ </attribute>
+ <attribute name="userid" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Login user id to use on the specified server.]]></short-description>
+ <description><![CDATA[
+ Sets the login user id to use on the specified server.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set to true to receive notification about each file as it is
+ transferred.]]></short-description>
+ <description><![CDATA[
+ Set to true to receive notification about each file as it is
+ transferred.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[A set of files to upload or download.]]></short-description>
+ <description>
+ <![CDATA[A set of files to upload or download]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="genkey" category="java"
+ classname="org.apache.tools.ant.taskdefs.GenerateKey"
+ >
+
+ <short-description><![CDATA[Generates a key in a keystore.]]></short-description>
+ <description>
+ <![CDATA[Generates a key in a keystore.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="alias" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The alias to add under.]]></short-description>
+ <description><![CDATA[
+ The alias to add under.
+ ]]></description>
+ </attribute>
+ <attribute name="dname" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The distinguished name for entity.]]></short-description>
+ <description><![CDATA[
+ The distinguished name for entity.
+ ]]></description>
+ </attribute>
+ <attribute name="keyalg" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The method to use when generating name-value pair.]]></short-description>
+ <description><![CDATA[
+ The method to use when generating name-value pair.
+ ]]></description>
+ </attribute>
+ <attribute name="keypass" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Password for private key (if different).]]></short-description>
+ <description><![CDATA[
+ Password for private key (if different).
+ ]]></description>
+ </attribute>
+ <attribute name="keysize" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates the size of key generated.]]></short-description>
+ <description><![CDATA[
+ Indicates the size of key generated.
+ ]]></description>
+ </attribute>
+ <attribute name="keystore" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Keystore location.]]></short-description>
+ <description><![CDATA[
+ Keystore location.
+ ]]></description>
+ </attribute>
+ <attribute name="sigalg" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The algorithm to use in signing.]]></short-description>
+ <description><![CDATA[
+ The algorithm to use in signing.
+ ]]></description>
+ </attribute>
+ <attribute name="storepass" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Password for keystore integrity.]]></short-description>
+ <description><![CDATA[
+ Password for keystore integrity.
+ Must be at least 6 characters long.
+ ]]></description>
+ </attribute>
+ <attribute name="storetype" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Keystore type.]]></short-description>
+ <description><![CDATA[
+ Keystore type.
+ ]]></description>
+ </attribute>
+ <attribute name="validity" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates how many days certificate is valid.]]></short-description>
+ <description><![CDATA[
+ Indicates how many days certificate is valid.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, verbose output when signing.]]></short-description>
+ <description><![CDATA[
+ If true, verbose output when signing.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="dname" type="org.apache.tools.ant.taskdefs.GenerateKey.DistinguishedName"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Distinguished name list.]]></short-description>
+ <description>
+ <![CDATA[Distinguished name list.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="get" category="network"
+ classname="org.apache.tools.ant.taskdefs.Get"
+ >
+
+ <short-description><![CDATA[Gets a particular file from a URL source.]]></short-description>
+ <description>
+ <![CDATA[Gets a particular file from a URL source.
+ Options include verbose reporting, timestamp based fetches and controlling
+ actions on failures. NB: access through a firewall only works if the whole
+ Java runtime is correctly configured.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Where to copy the source file.]]></short-description>
+ <description><![CDATA[
+ Where to copy the source file.
+ ]]></description>
+ </attribute>
+ <attribute name="ignoreerrors" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, log errors but do not treat as fatal.]]></short-description>
+ <description><![CDATA[
+ If true, log errors but do not treat as fatal.
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Password for the basic authentication.]]></short-description>
+ <description><![CDATA[
+ password for the basic authentication.
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.net.URL"
+ briefType="URL" required="NOTDEFINED">
+ <short-description><![CDATA[URL to get.]]></short-description>
+ <description><![CDATA[
+ Set the URL to get.
+ ]]></description>
+ </attribute>
+ <attribute name="usetimestamp" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, conditionally download a file based on the timestamp
+ of the local copy.]]></short-description>
+ <description><![CDATA[
+ If true, conditionally download a file based on the timestamp
+ of the local copy.
+
+ <p>In this situation, the if-modified-since header is set so
+ that the file is only fetched if it is newer than the local
+ file (or there is no local file) This flag is only valid on
+ HTTP connections, it is ignored in other cases. When the flag
+ is set, the local copy of the downloaded file will also have
+ its timestamp set to the remote file time.</p>
+
+ <p>Note that remote files of date 1/1/1970 (GMT) are treated as
+ 'no timestamp', and web servers often serve files with a
+ timestamp in the future by replacing their timestamp with that
+ of the current time. Also, inter-computer clock differences can
+ cause no end of grief.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="username" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Username for basic auth.]]></short-description>
+ <description><![CDATA[
+ Username for basic auth.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, show verbose progress information.]]></short-description>
+ <description><![CDATA[
+ If true, show verbose progress information.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="gunzip" category="packaging"
+ classname="org.apache.tools.ant.taskdefs.GUnzip"
+ >
+
+ <short-description><![CDATA[Expands a file that has been compressed with the GZIP algorithm.]]></short-description>
+ <description>
+ <![CDATA[Expands a file that has been compressed with the GZIP
+ algorithm. Normally used to compress non-compressed archives such
+ as TAR files.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The destination file or directory; optional.]]></short-description>
+ <description><![CDATA[
+ The destination file or directory; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file to expand; required.]]></short-description>
+ <description><![CDATA[
+ The file to expand; required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="gzip" category="packaging"
+ classname="org.apache.tools.ant.taskdefs.GZip"
+ >
+
+ <short-description><![CDATA[Compresses a file with the GZIP algorithm.]]></short-description>
+ <description>
+ <![CDATA[Compresses a file with the GZIP algorithm. Normally used to compress
+ non-compressed archives such as TAR files.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file to compress; required.]]></short-description>
+ <description><![CDATA[
+ the file to compress; required.
+ ]]></description>
+ </attribute>
+ <attribute name="zipfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The required destination file.]]></short-description>
+ <description><![CDATA[
+ the required destination file.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="icontract" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.IContract"
+ matchingTask="true">
+
+ <short-description><![CDATA[Instruments Java classes with iContract DBC preprocessor.]]></short-description>
+ <description>
+ <![CDATA[Instruments Java classes with iContract DBC preprocessor.
+ <br/>
+ The task can generate a properties file for <a href="http://hjem.sol.no/hellesoy/icontrol.html">iControl</a>,
+ a graphical user interface that lets you turn on/off assertions. iControl generates a control file that you can refer to
+ from this task using the controlfile attribute.
+ iContract is at <a href="http://www.reliable-systems.com/tools/">http://www.reliable-systems.com/tools/</a>
+ <p/>
+ Thanks to Rainer Schmitz for enhancements and comments.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="builddir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Build directory for instrumented classes.]]></short-description>
+ <description><![CDATA[
+ Sets the build directory for instrumented classes.
+ ]]></description>
+ </attribute>
+ <attribute name="classdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Class directory (uninstrumented classes).]]></short-description>
+ <description><![CDATA[
+ Sets the class directory (uninstrumented classes).
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used for invocation of iContract.]]></short-description>
+ <description><![CDATA[
+ Sets the classpath to be used for invocation of iContract.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a classpath defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a classpath defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="controlfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Control file to pass to iContract.]]></short-description>
+ <description><![CDATA[
+ Sets the control file to pass to iContract.
+ ]]></description>
+ </attribute>
+ <attribute name="failthrowable" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Throwable (Exception) to be thrown on assertion violation.]]></short-description>
+ <description><![CDATA[
+ Sets the Throwable (Exception) to be thrown on assertion violation.
+ ]]></description>
+ </attribute>
+ <attribute name="instrumentdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Instrumentation directory.]]></short-description>
+ <description><![CDATA[
+ Sets the instrumentation directory.
+ ]]></description>
+ </attribute>
+ <attribute name="invariant" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Turns on/off invariant instrumentation.]]></short-description>
+ <description><![CDATA[
+ Turns on/off invariant instrumentation.
+ ]]></description>
+ </attribute>
+ <attribute name="post" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Turns on/off postcondition instrumentation.]]></short-description>
+ <description><![CDATA[
+ Turns on/off postcondition instrumentation.
+ ]]></description>
+ </attribute>
+ <attribute name="pre" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Turns on/off precondition instrumentation.]]></short-description>
+ <description><![CDATA[
+ Turns on/off precondition instrumentation.
+ ]]></description>
+ </attribute>
+ <attribute name="quiet" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Tells iContract to be quiet.]]></short-description>
+ <description><![CDATA[
+ Tells iContract to be quiet.
+ ]]></description>
+ </attribute>
+ <attribute name="repbuilddir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Build directory for instrumented classes.]]></short-description>
+ <description><![CDATA[
+ Sets the build directory for instrumented classes.
+ ]]></description>
+ </attribute>
+ <attribute name="repositorydir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Build directory for repository classes.]]></short-description>
+ <description><![CDATA[
+ Sets the build directory for repository classes.
+ ]]></description>
+ </attribute>
+ <attribute name="srcdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Source directory.]]></short-description>
+ <description><![CDATA[
+ Sets the source directory.
+ ]]></description>
+ </attribute>
+ <attribute name="targets" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the file where targets will be written.]]></short-description>
+ <description><![CDATA[
+ Sets the name of the file where targets will be written. That is the
+ file that tells iContract what files to process.
+ ]]></description>
+ </attribute>
+ <attribute name="updateicontrol" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, updates iControl properties file.]]></short-description>
+ <description><![CDATA[
+ If true, updates iControl properties file
+ ]]></description>
+ </attribute>
+ <attribute name="verbosity" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Verbosity level of iContract.]]></short-description>
+ <description><![CDATA[
+ Sets the verbosity level of iContract. Any combination of
+ error*,warning*,note*,info*,progress*,debug* (comma separated) can be
+ used. Defaults to error*,warning*
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Classpath.]]></short-description>
+ <description>
+ <![CDATA[Sets the classpath.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="ilasm" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.dotnet.Ilasm"
+ matchingTask="true">
+
+ <short-description><![CDATA[Assembles .NET Intermediate Language files.]]></short-description>
+ <description>
+ <![CDATA[Assembles .NET Intermediate Language files. The task will only work
+ on win2K until other platforms support csc.exe or an equivalent. ilasm.exe
+ must be on the execute path too. <p>
+
+ <p>
+
+ All parameters are optional: &lt;il/&gt; should suffice to produce a debug
+ build of all *.il files. The option set is roughly compatible with the
+ CSharp class; even though the command line options are only vaguely
+ equivalent. [The low level commands take things like /OUT=file, csc wants
+ /out:file ... /verbose is used some places; /quiet here in ildasm... etc.]
+ It would be nice if someone made all the command line tools consistent (and
+ not as brittle as the java cmdline tools) <p>
+
+ The task is a directory based task, so attributes like <b>includes="*.il"
+ </b> and <b>excludes="broken.il"</b> can be used to control the files pulled
+ in. Each file is built on its own, producing an appropriately named output
+ file unless manually specified with <b>outfile</b>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="debug" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Debug flag on or off.]]></short-description>
+ <description><![CDATA[
+ set the debug flag on or off.
+ ]]></description>
+ </attribute>
+ <attribute name="extraoptions" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Any extra options which are not explicitly
+ supported by this task.]]></short-description>
+ <description><![CDATA[
+ Any extra options which are not explicitly
+ supported by this task.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, fails if ilasm tool fails.]]></short-description>
+ <description><![CDATA[
+ If true, fails if ilasm tool fails.
+ ]]></description>
+ </attribute>
+ <attribute name="keyfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The name of a file containing a private key.]]></short-description>
+ <description><![CDATA[
+ the name of a file containing a private key.
+ ]]></description>
+ </attribute>
+ <attribute name="listing" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, produce a listing (off by default).]]></short-description>
+ <description><![CDATA[
+ If true, produce a listing (off by default).
+ ]]></description>
+ </attribute>
+ <attribute name="outputfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Output file.]]></short-description>
+ <description><![CDATA[
+ Set the output file.
+ ]]></description>
+ </attribute>
+ <attribute name="resourcefile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of resource file to include.]]></short-description>
+ <description><![CDATA[
+ name of resource file to include.
+ ]]></description>
+ </attribute>
+ <attribute name="srcdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Source directory containing the files to be compiled.]]></short-description>
+ <description><![CDATA[
+ Set the source directory containing the files to be compiled.
+ ]]></description>
+ </attribute>
+ <attribute name="targettype" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Type of target, either "exe" or "library".]]></short-description>
+ <description><![CDATA[
+ Sets the type of target, either "exe" or "library".
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, enable verbose ILASM output.]]></short-description>
+ <description><![CDATA[
+ If true, enable verbose ILASM output.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="input" category="control"
+ classname="org.apache.tools.ant.taskdefs.Input"
+ >
+
+ <short-description><![CDATA[Reads an input line from the console.]]></short-description>
+ <description>
+ <![CDATA[Reads an input line from the console.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="addproperty" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Defines the name of a property to be created from input.]]></short-description>
+ <description><![CDATA[
+ Defines the name of a property to be created from input. Behaviour is
+ according to property task which means that existing properties
+ cannot be overriden.
+ ]]></description>
+ </attribute>
+ <attribute name="message" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Message which gets displayed to the user during the build run.]]></short-description>
+ <description><![CDATA[
+ Sets the Message which gets displayed to the user during the build run.
+ ]]></description>
+ </attribute>
+ <attribute name="validargs" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Defines valid input parameters as comma separated strings.]]></short-description>
+ <description><![CDATA[
+ Defines valid input parameters as comma separated strings. If set, input
+ task will reject any input not defined as accepted and requires the user
+ to reenter it. Validargs are case sensitive. If you want 'a' and 'A' to
+ be accepted you need to define both values as accepted arguments.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ <body >
+ <description><![CDATA[
+ Set a multiline message.
+ ]]></description>
+ </body>
+
+ </structure>
+
+</task>
+
+
+<task name="iplanet-ejbc" category="ejb"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.IPlanetEjbcTask"
+ >
+
+ <short-description><![CDATA[Compiles EJB stubs and skeletons for the iPlanet Application Server.]]></short-description>
+ <description>
+ <![CDATA[Compiles EJB stubs and skeletons for the iPlanet Application Server.
+ The EJBs to be processed are specified by the EJB 1.1 standard XML
+ descriptor, and additional attributes are obtained from the iPlanet Application
+ Server-specific XML descriptor. Since the XML descriptors can include
+ multiple EJBs, this is a convenient way of specifying many EJBs in a single
+ Ant task. The following attributes are allowed:
+ <ul>
+ <li><i>ejbdescriptor</i> -- Standard EJB 1.1 XML descriptor (typically
+ titled "ejb-jar.xml"). This attribute is
+ required.
+ <li><i>iasdescriptor</i> -- EJB XML descriptor for iPlanet Application
+ Server (typically titled "ias-ejb-jar.xml).
+ This attribute is required.
+ <li><i>dest</i> -- The is the base directory where the RMI stubs and
+ skeletons are written. In addition, the class files
+ for each bean (home interface, remote interface, and
+ EJB implementation) must be found in this directory.
+ This attribute is required.
+ <li><i>classpath</i> -- The classpath used when generating EJB stubs and
+ skeletons. This is an optional attribute (if
+ omitted, the classpath specified when Ant was
+ started will be used). Nested "classpath"
+ elements may also be used.
+ <li><i>keepgenerated</i> -- Indicates whether or not the Java source
+ files which are generated by ejbc will be
+ saved or automatically deleted. If "yes",
+ the source files will be retained. This is
+ an optional attribute (if omitted, it
+ defaults to "no").
+ <li><i>debug</i> -- Indicates whether or not the ejbc utility should
+ log additional debugging statements to the standard
+ output. If "yes", the additional debugging statements
+ will be generated (if omitted, it defaults to "no").
+ <li><i>iashome</i> -- May be used to specify the "home" directory for
+ this iPlanet Application Server installation. This
+ is used to find the ejbc utility if it isn't
+ included in the user's system path. This is an
+ optional attribute (if specified, it should refer
+ to the <code>[install-location]/iplanet/ias6/ias
+ </code> directory). If omitted, the ejbc utility
+ must be on the user's system path.
+ </ul>
+ <p>
+ For each EJB specified, this task will locate the three classes that comprise
+ the EJB. If these class files cannot be located in the <code>dest</code>
+ directory, the task will fail. The task will also attempt to locate the EJB
+ stubs and skeletons in this directory. If found, the timestamps on the
+ stubs and skeletons will be checked to ensure they are up to date. Only if
+ these files cannot be found or if they are out of date will ejbc be called
+ to generate new stubs and skeletons.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used when compiling the EJB stubs and skeletons.]]></short-description>
+ <description><![CDATA[
+ Sets the classpath to be used when compiling the EJB stubs and skeletons.
+ ]]></description>
+ </attribute>
+ <attribute name="debug" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, debugging output will be generated when ejbc is
+ executed.]]></short-description>
+ <description><![CDATA[
+ If true, debugging output will be generated when ejbc is
+ executed.
+ ]]></description>
+ </attribute>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory where the EJB source classes must exist
+ and where the stubs and skeletons will be written.]]></short-description>
+ <description><![CDATA[
+ Sets the destination directory where the EJB source classes must exist
+ and where the stubs and skeletons will be written. The destination
+ directory must exist before this task is executed.
+ ]]></description>
+ </attribute>
+ <attribute name="ejbdescriptor" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Location of the standard XML EJB descriptor.]]></short-description>
+ <description><![CDATA[
+ Sets the location of the standard XML EJB descriptor. Typically, this
+ file is named "ejb-jar.xml".
+ ]]></description>
+ </attribute>
+ <attribute name="iasdescriptor" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Location of the iAS-specific XML EJB descriptor.]]></short-description>
+ <description><![CDATA[
+ Sets the location of the iAS-specific XML EJB descriptor. Typically,
+ this file is named "ias-ejb-jar.xml".
+ ]]></description>
+ </attribute>
+ <attribute name="iashome" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[May be used to specify the "home" directory for this iAS installation.]]></short-description>
+ <description><![CDATA[
+ May be used to specify the "home" directory for this iAS installation.
+ The directory specified should typically be
+ <code>[install-location]/iplanet/ias6/ias</code>.
+ ]]></description>
+ </attribute>
+ <attribute name="keepgenerated" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, the Java source files which are generated by ejbc will be saved .]]></short-description>
+ <description><![CDATA[
+ If true, the Java source files which are generated by ejbc will be saved .
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds to the classpath used when compiling the EJB stubs and skeletons.]]></short-description>
+ <description>
+ <![CDATA[Adds to the classpath used when compiling the EJB stubs and skeletons.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="jar" category="packaging"
+ classname="org.apache.tools.ant.taskdefs.Jar"
+ matchingTask="true">
+
+ <short-description><![CDATA[Creates a JAR archive.]]></short-description>
+ <description>
+ <![CDATA[Creates a JAR archive.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="basedir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Directory from which to archive files; optional.]]></short-description>
+ <description><![CDATA[
+ Directory from which to archive files; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="compress" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether we want to compress the files or only store them;
+ optional, default=true;.]]></short-description>
+ <description><![CDATA[
+ Whether we want to compress the files or only store them;
+ optional, default=true;
+ ]]></description>
+ </attribute>
+ <attribute name="destfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file to create; required.]]></short-description>
+ <description><![CDATA[
+ The file to create; required.
+ ]]></description>
+ </attribute>
+ <attribute name="duplicate" type="org.apache.tools.ant.taskdefs.Zip.Duplicate"
+ briefType="&quot;add&quot;, &quot;preserve&quot;, &quot;fail&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Sets behavior for when a duplicate file is about to be added -
+ one of <code>keep</code>, <code>skip</code> or <code>overwrite</code>.]]></short-description>
+ <description><![CDATA[
+ Sets behavior for when a duplicate file is about to be added -
+ one of <code>keep</code>, <code>skip</code> or <code>overwrite</code>.
+ Possible values are: <code>keep</code> (keep both
+ of the files); <code>skip</code> (keep the first version
+ of the file found); <code>overwrite</code> overwrite the file
+ with the new file
+ Default for zip tasks is <code>keep</code>
+ ]]></description>
+ </attribute>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Encoding to use for filenames, defaults to the platform's
+ default encoding.]]></short-description>
+ <description><![CDATA[
+ Encoding to use for filenames, defaults to the platform's
+ default encoding.
+
+ <p>For a list of possible values see <a
+ href="http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html">http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html</a>.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="filesonly" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, emulate Sun's jar utility by not adding parent directories;
+ optional, defaults to false.]]></short-description>
+ <description><![CDATA[
+ If true, emulate Sun's jar utility by not adding parent directories;
+ optional, defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="index" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set whether or not to create an index list for classes.]]></short-description>
+ <description><![CDATA[
+ Set whether or not to create an index list for classes.
+ This may speed up classloading in some cases.
+ ]]></description>
+ </attribute>
+ <attribute name="manifest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The manifest file to use.]]></short-description>
+ <description><![CDATA[
+ The manifest file to use. This can be either the location of a manifest,
+ or the name of a jar added through a fileset. If its the name of an added
+ jar, the task expects the manifest to be in the jar at META-INF/MANIFEST.MF.
+ ]]></description>
+ </attribute>
+ <attribute name="update" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, updates an existing file, otherwise overwrite
+ any existing one; optional defaults to false.]]></short-description>
+ <description><![CDATA[
+ If true, updates an existing file, otherwise overwrite
+ any existing one; optional defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="whenempty" type="org.apache.tools.ant.taskdefs.Zip.WhenEmpty"
+ briefType="&quot;fail&quot;, &quot;skip&quot;, &quot;create&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Sets behavior of the task when no files match.]]></short-description>
+ <description><![CDATA[
+ Sets behavior of the task when no files match.
+ Possible values are: <code>fail</code> (throw an exception
+ and halt the build); <code>skip</code> (do not create
+ any archive, but issue a warning); <code>create</code>
+ (make an archive with no entries).
+ Default for zip tasks is <code>skip</code>;
+ for jar tasks, <code>create</code>.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="manifest" type="org.apache.tools.ant.taskdefs.Manifest"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Allows the manifest for the archive file to be provided inline
+ in the buildfile rather than in an external file.]]></short-description>
+ <description>
+ <![CDATA[Allows the manifest for the archive file to be provided inline
+ in the buildfile rather than in an external file.]]>
+ </description>
+ </element>
+
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files.]]>
+ </description>
+ </element>
+
+ <element name="metainf" type="org.apache.tools.ant.types.ZipFileSet"
+ briefType="ZipFileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a zipfileset to include in the META-INF directory.]]></short-description>
+ <description>
+ <![CDATA[Adds a zipfileset to include in the META-INF directory.]]>
+ </description>
+ </element>
+
+ <element name="zipgroupfileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a group of zip files.]]></short-description>
+ <description>
+ <![CDATA[Adds a group of zip files.]]>
+ </description>
+ </element>
+
+ <element name="zipfileset" type="org.apache.tools.ant.types.ZipFileSet"
+ briefType="ZipFileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files that can be
+ read from an archive and be given a prefix/fullpath.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files that can be
+ read from an archive and be given a prefix/fullpath.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="jarlib-available" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.extension.JarLibAvailableTask"
+ >
+
+ <short-description><![CDATA[Checks whether an extension is present in a fileset or an extensionSet.]]></short-description>
+ <description>
+ <![CDATA[Checks whether an extension is present in a fileset or an extensionSet.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The JAR library to check.]]></short-description>
+ <description><![CDATA[
+ The JAR library to check.
+ ]]></description>
+ </attribute>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of property to set if extensions are available.]]></short-description>
+ <description><![CDATA[
+ The name of property to set if extensions are available.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="extension" type="org.apache.tools.ant.taskdefs.optional.extension.ExtensionAdapter"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Extension looking for.]]></short-description>
+ <description>
+ <![CDATA[Set the Extension looking for.]]>
+ </description>
+ </element>
+
+ <element name="extensionset" type="org.apache.tools.ant.taskdefs.optional.extension.ExtensionSet"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of extensions to search in.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of extensions to search in.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="jarlib-display" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.extension.JarLibDisplayTask"
+ >
+
+ <short-description><![CDATA[Displays the "Optional Package" and "Package Specification" information contained within the specified JARs.]]></short-description>
+ <description>
+ <![CDATA[Displays the "Optional Package" and "Package Specification" information
+ contained within the specified JARs.
+
+ <p>Prior to JDK1.3, an "Optional Package" was known as an Extension.
+ The specification for this mechanism is available in the JDK1.3
+ documentation in the directory
+ $JDK_HOME/docs/guide/extensions/versioning.html. Alternatively it is
+ available online at <a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+ http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The JAR library to display information for.]]></short-description>
+ <description><![CDATA[
+ The JAR library to display information for.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files about which library data will be displayed.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files about which library data will be displayed.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="jarlib-manifest" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.extension.JarLibManifestTask"
+ >
+
+ <short-description><![CDATA[Generates a manifest that declares all the dependencies.]]></short-description>
+ <description>
+ <![CDATA[Generates a manifest that declares all the dependencies.
+ The dependencies are determined by looking in the
+ specified path and searching for Extension / "Optional Package"
+ specifications in the manifests of the jars.
+
+ <p>Prior to JDK1.3, an "Optional Package" was known as an Extension.
+ The specification for this mechanism is available in the JDK1.3
+ documentation in the directory
+ $JDK_HOME/docs/guide/extensions/versioning.html. Alternatively it is
+ available online at <a href="http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html">
+ http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html</a>.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="destfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The location where generated manifest is placed.]]></short-description>
+ <description><![CDATA[
+ The location where generated manifest is placed.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="attribute" type="org.apache.tools.ant.taskdefs.optional.extension.ExtraAttribute"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds an attribute that is to be put in main section of manifest.]]></short-description>
+ <description>
+ <![CDATA[Adds an attribute that is to be put in main section of manifest.]]>
+ </description>
+ </element>
+
+ <element name="depends" type="org.apache.tools.ant.taskdefs.optional.extension.ExtensionSet"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of extensions that this library requires.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of extensions that this library requires.]]>
+ </description>
+ </element>
+
+ <element name="extension" type="org.apache.tools.ant.taskdefs.optional.extension.ExtensionAdapter"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds an extension that this library implements.]]></short-description>
+ <description>
+ <![CDATA[Adds an extension that this library implements.]]>
+ </description>
+ </element>
+
+ <element name="options" type="org.apache.tools.ant.taskdefs.optional.extension.ExtensionSet"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of extensions that this library optionally requires.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of extensions that this library optionally requires.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="jarlib-resolve" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.extension.JarLibResolveTask"
+ >
+
+ <short-description><![CDATA[Tries to locate a JAR to satisfy an extension and place location of JAR into property.]]></short-description>
+ <description>
+ <![CDATA[Tries to locate a JAR to satisfy an extension and place
+ location of JAR into property.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="checkextension" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, libraries returned by nested resolvers should be
+ checked to see if they supply extension.]]></short-description>
+ <description><![CDATA[
+ If true, libraries returned by nested resolvers should be
+ checked to see if they supply extension.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, failure to locate library should fail build.]]></short-description>
+ <description><![CDATA[
+ If true, failure to locate library should fail build.
+ ]]></description>
+ </attribute>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the property in which the location of
+ library is stored.]]></short-description>
+ <description><![CDATA[
+ The name of the property in which the location of
+ library is stored.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="ant" type="org.apache.tools.ant.taskdefs.optional.extension.resolvers.AntResolver"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds Ant resolver to run an Ant buildfile to generate a library.]]></short-description>
+ <description>
+ <![CDATA[Adds Ant resolver to run an Ant buildfile to generate a library.]]>
+ </description>
+ </element>
+
+ <element name="extension" type="org.apache.tools.ant.taskdefs.optional.extension.ExtensionAdapter"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Extension looking for.]]></short-description>
+ <description>
+ <![CDATA[Set the Extension looking for.]]>
+ </description>
+ </element>
+
+ <element name="location" type="org.apache.tools.ant.taskdefs.optional.extension.resolvers.LocationResolver"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds location resolver to look for a library in a location
+ relative to project directory.]]></short-description>
+ <description>
+ <![CDATA[Adds location resolver to look for a library in a location
+ relative to project directory.]]>
+ </description>
+ </element>
+
+ <element name="url" type="org.apache.tools.ant.taskdefs.optional.extension.resolvers.URLResolver"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a URL resolver to download a library from a URL
+ to a local file.]]></short-description>
+ <description>
+ <![CDATA[Adds a URL resolver to download a library from a URL
+ to a local file.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="java" category="java"
+ classname="org.apache.tools.ant.taskdefs.Java"
+ >
+
+ <short-description><![CDATA[Launcher for Java applications.]]></short-description>
+ <description>
+ <![CDATA[Launcher for Java applications. Allows use of
+ the same JVM for the called application thus resulting in much
+ faster operation.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="append" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, append output to existing file.]]></short-description>
+ <description><![CDATA[
+ If true, append output to existing file.
+ ]]></description>
+ </attribute>
+ <attribute name="classname" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Java class to execute.]]></short-description>
+ <description><![CDATA[
+ Sets the Java class to execute.
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used when running the Java class.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used when running the Java class
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to use, by reference.]]></short-description>
+ <description><![CDATA[
+ Classpath to use, by reference.
+ ]]></description>
+ </attribute>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The working directory of the process.]]></short-description>
+ <description><![CDATA[
+ The working directory of the process
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, then fail if the command exits with a
+ returncode other than 0.]]></short-description>
+ <description><![CDATA[
+ If true, then fail if the command exits with a
+ returncode other than 0
+ ]]></description>
+ </attribute>
+ <attribute name="fork" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, execute in a new VM.]]></short-description>
+ <description><![CDATA[
+ If true, execute in a new VM.
+ ]]></description>
+ </attribute>
+ <attribute name="jvmversion" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[JVM version.]]></short-description>
+ <description><![CDATA[
+ Sets the JVM version.
+ ]]></description>
+ </attribute>
+ <attribute name="jar" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The location of the JAR file to execute.]]></short-description>
+ <description><![CDATA[
+ The location of the JAR file to execute.
+ ]]></description>
+ </attribute>
+ <attribute name="jvm" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Command used to start the VM (only if not forking).]]></short-description>
+ <description><![CDATA[
+ Set the command used to start the VM (only if not forking).
+ ]]></description>
+ </attribute>
+ <attribute name="jvmargs" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Command line arguments for the JVM.]]></short-description>
+ <description><![CDATA[
+ Set the command line arguments for the JVM.
+ ]]></description>
+ </attribute>
+ <attribute name="maxmemory" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Corresponds to -mx or -Xmx depending on VM version.]]></short-description>
+ <description><![CDATA[
+ Corresponds to -mx or -Xmx depending on VM version.
+ ]]></description>
+ </attribute>
+ <attribute name="newenvironment" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, use a completely new environment.]]></short-description>
+ <description><![CDATA[
+ If true, use a completely new environment.
+
+ <p>Will be ignored if we are not forking a new VM.
+ ]]></description>
+ </attribute>
+ <attribute name="output" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File the output of the process is redirected to.]]></short-description>
+ <description><![CDATA[
+ File the output of the process is redirected to.
+ ]]></description>
+ </attribute>
+ <attribute name="timeout" type="java.lang.Long"
+ briefType="long" required="NOTDEFINED">
+ <short-description><![CDATA[Timeout in milliseconds after which the process will be killed.]]></short-description>
+ <description><![CDATA[
+ Timeout in milliseconds after which the process will be killed.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="env" type="org.apache.tools.ant.types.Environment.Variable"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds an environment variable.]]></short-description>
+ <description>
+ <![CDATA[Adds an environment variable.
+
+ <p>Will be ignored if we are not forking a new VM.]]>
+ </description>
+ </element>
+
+ <element name="sysproperty" type="org.apache.tools.ant.types.Environment.Variable"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a system property.]]></short-description>
+ <description>
+ <![CDATA[Adds a system property.]]>
+ </description>
+ </element>
+
+ <element name="arg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a command-line argument.]]></short-description>
+ <description>
+ <![CDATA[Adds a command-line argument.]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a path to the classpath.]]></short-description>
+ <description>
+ <![CDATA[Adds a path to the classpath.]]>
+ </description>
+ </element>
+
+ <element name="jvmarg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a JVM argument.]]></short-description>
+ <description>
+ <![CDATA[Adds a JVM argument.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="javac" category="java"
+ classname="org.apache.tools.ant.taskdefs.Javac"
+ matchingTask="true">
+
+ <!-- javac task -->
+<external>
+<description>
+
+<p>Compiles a Java source tree.</p>
+
+<p>The source and destination directory will be recursively scanned for Java
+source files to compile. Only Java files that have no corresponding class file
+or where the class file is older than the java file will be compiled.</p>
+
+<p>Note: Ant uses only the names of the source and class files to find
+the classes that need a rebuild. It will not scan the source and therefor
+will have no knowledge about nested classes, classes that are named different
+from the source file and so on.</p>
+
+<p>The directory structure of the source tree should follow the package
+hierarchy.</p>
+
+<p>It is possible to refine the set of files that are being compiled/copied.
+This can be done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>, <i>excludesfile</i> and <i>defaultexcludes</i>
+attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+want to use default exclusions or not. See the section on <a
+href="../dirtasks.html#directorybasedtasks">directory based tasks</a>, on how the
+inclusion/exclusion of files works, and how to write patterns.</p>
+
+<p>It is possible to use different compilers. This can be selected with the
+&quot;build.compiler&quot; property or the compiler attribute. Here are the choices:-</p>
+<ul>
+ <li>classic (the standard compiler of JDK 1.1/1.2) - javac1.1 and
+ javac1.2 can be used as aliases</li>
+ <li>modern (the standard compiler of JDK 1.3/1.4) - javac1.3 and
+ javac1.4 can be used as aliases</li>
+ <li>jikes (the <a
+ href="http://oss.software.ibm.com/developerworks/opensource/jikes/project" target="_top">Jikes</a>
+ compiler)</li>
+ <li>jvc (the Command-Line Compiler from Microsoft's SDK for Java /
+ Visual J++) - microsoft can be used as an alias</li>
+ <li>kjc (the <a href="http://www.dms.at/kopi/" target="_top">kopi</a>
+ compiler)</li>
+ <li>gcj (the gcj compiler from gcc)</li>
+ <li>sj (Symantec java compiler) - symantec can be used as an alias</li>
+ <li>extJavac (run either modern or classic in a JVM of its own)</li>
+</ul>
+<p>For JDK 1.1/1.2, classic is the default. For JDK 1.3/1.4, modern is the default.
+If you wish to use a different compiler interface than those
+supplied, write a class that implements the CompilerAdapter interface
+(package org.apache.tools.ant.taskdefs.compilers). Supply the full
+classname in the &quot;build.compiler&quot; property.</p>
+
+<p>The fork attribute overrides the build.compiler setting and expects
+a JDK1.1 or higher to be set in java.home.</p>
+
+<p>This task will drop all entries that point to non-existent
+files/directories from the CLASSPATH it passes to the compiler.</p>
+
+<p><strong>Windows Note:</strong>When the modern compiler is used
+in unforked mode on Windows, it locks up the files present in the
+classpath of the &lt;javac&gt; task, and does not release them. The side
+effect of this is that you will not be able to delete or move
+those files later on in the build. The workaround is to fork when
+invoking the compiler.</p>
+
+</description>
+
+<section anchor="examples" name="Examples">
+<pre> &lt;javac srcdir=&quot;${src}&quot;
+ destdir=&quot;${build}&quot;
+ classpath=&quot;xyz.jar&quot;
+ debug=&quot;on&quot;
+ /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores
+the <code>.class</code> files in the <code>${build}</code> directory.
+The classpath used contains <code>xyz.jar</code>, and debug information is on.</p>
+
+<pre> &lt;javac srcdir=&quot;${src}&quot;
+ destdir=&quot;${build}&quot;
+ fork=&quot;true&quot;
+ /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores the <code>.class</code> files in the
+<code>${build}</code> directory. This will fork off the javac
+compiler using the default javac executable.</p>
+
+<pre> &lt;javac srcdir=&quot;${src}&quot;
+ destdir=&quot;${build}&quot;
+ fork=&quot;java$$javac.exe&quot;
+ /&gt;</pre>
+<p>compiles all <code>.java</code> files under the <code>${src}</code>
+directory, and stores the <code>.class</code> files in the
+<code>${build}</code> directory. This will fork off the javac
+compiler using the executable named <code>java$javac.exe</code>. Note
+that the <code>$</code> sign needs to be escaped by a second one.</p>
+
+<pre> &lt;javac srcdir=&quot;${src}&quot;
+ destdir=&quot;${build}&quot;
+ includes=&quot;mypackage/p1/**,mypackage/p2/**&quot;
+ excludes=&quot;mypackage/p1/testpackage/**&quot;
+ classpath=&quot;xyz.jar&quot;
+ debug=&quot;on&quot;
+ /&gt;</pre>
+<p>compiles <code>.java</code> files under the <code>${src}</code>
+directory, and stores the
+<code>.class</code> files in the <code>${build}</code> directory.
+The classpath used contains <code>xyz.jar</code>, and debug information is on.
+Only files under <code>mypackage/p1</code> and <code>mypackage/p2</code> are
+used. Files in the <code>mypackage/p1/testpackage</code> directory are excluded
+from compilation.</p>
+
+<pre> &lt;javac srcdir=&quot;${src}:${src2}&quot;
+ destdir=&quot;${build}&quot;
+ includes=&quot;mypackage/p1/**,mypackage/p2/**&quot;
+ excludes=&quot;mypackage/p1/testpackage/**&quot;
+ classpath=&quot;xyz.jar&quot;
+ debug=&quot;on&quot;
+ /&gt;</pre>
+
+<p>is the same as the previous example, with the addition of a second
+source path, defined by
+the property <code>src2</code>. This can also be represented using nested
+<code>&lt;src&gt;</code> elements as follows:</p>
+
+<pre> &lt;javac destdir=&quot;${build}&quot;
+ classpath=&quot;xyz.jar&quot;
+ debug=&quot;on&quot;&gt;
+ &lt;src path=&quot;${src}&quot;/&gt;
+ &lt;src path=&quot;${src2}&quot;/&gt;
+ &lt;include name=&quot;mypackage/p1/**&quot;/&gt;
+ &lt;include name=&quot;mypackage/p2/**&quot;/&gt;
+ &lt;exclude name=&quot;mypackage/p1/testpackage/**&quot;/&gt;
+ &lt;/javac&gt;</pre>
+
+<p><b>Note:</b> If you are using Ant on Windows and a new DOS window pops up
+for every use of an external compiler, this may be a problem of the JDK you are using.
+This problem may occur with all JDKs &lt; 1.2.</p>
+
+<p><b>Note:</b> If you wish to compile only source-files located in some packages below a
+common root you should not include these packages in the srcdir-attribute. Use include/exclude-attributes
+or elements to filter for these packages. If you include part of your package-structure inside the srcdir-attribute
+(or nested src-elements) Ant will start to recompile your sources every time you call it.</p>
+
+</section>
+
+<section anchor="jikes" name="Jikes Notes">
+
+<p>Jikes supports some extra options, which can be set be defining
+properties prior to invoking the task. The ant developers are aware that
+this is ugly and inflexible -expect a better solution in the future. All
+the options are boolean, and must be set to &quot;true&quot; or &quot;yes&quot; to be
+interpreted as anything other than false; by default
+build.compiler.warnings is &quot;true&quot; while all others are &quot;false&quot;</p>
+
+<table border="1" cellpadding="2" cellspacing="0">
+ <tr>
+ <td valign="top">
+ build.compiler.emacs
+ </td>
+ <td valign="top">
+ Enable emacs compatible error messages
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">
+ build.compiler.warnings<br />
+ <b>This property has been deprecated, use the nowarn attribute
+ instead</b>
+ </td>
+ <td valign="top">
+ don't disable warning messages
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">
+ build.compiler.pedantic
+ </td>
+ <td valign="top">
+ enable pedantic warnings
+ </td>
+ </tr>
+ <tr>
+ <td valign="top">
+ build.compiler.fulldepend
+ </td>
+ <td valign="top">
+ enable full dependency checking,<br />
+ &quot;+F&quot; in the jikes manual.
+ </td>
+ </tr>
+</table>
+
+</section>
+</external>
+
+ <short-description><![CDATA[Compiles Java source files.]]></short-description>
+ <description>
+ <![CDATA[Compiles Java source files. This task can take the following
+ arguments:
+ <ul>
+ <li>sourcedir
+ <li>destdir
+ <li>deprecation
+ <li>classpath
+ <li>bootclasspath
+ <li>extdirs
+ <li>optimize
+ <li>debug
+ <li>encoding
+ <li>target
+ <li>depend
+ <li>vebose
+ <li>failonerror
+ <li>includeantruntime
+ <li>includejavaruntime
+ <li>source
+ <li>compiler
+ </ul>
+ Of these arguments, the <b>sourcedir</b> and <b>destdir</b> are required.
+ <p>
+ When this task executes, it will recursively scan the sourcedir and
+ destdir looking for Java source files to compile. This task makes its
+ compile decision based on timestamp.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="bootclasspathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a classpath defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a classpath defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="bootclasspath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Bootclasspath that will be used to compile the classes
+ against.]]></short-description>
+ <description><![CDATA[
+ Sets the bootclasspath that will be used to compile the classes
+ against.
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used for this compilation.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used for this compilation.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a classpath defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a classpath defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="compiler" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Choose the implementation for this particular task.]]></short-description>
+ <description><![CDATA[
+ Choose the implementation for this particular task.
+ ]]></description>
+ </attribute>
+ <attribute name="debug" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates whether source should be compiled
+ with debug information; defaults to off.]]></short-description>
+ <description><![CDATA[
+ Indicates whether source should be compiled
+ with debug information; defaults to off.
+ ]]></description>
+ </attribute>
+ <attribute name="debuglevel" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Keyword list to be appended to the -g command-line switch.]]></short-description>
+ <description><![CDATA[
+ Keyword list to be appended to the -g command-line switch.
+
+ This will be ignored by all implementations except modern
+ and classic(ver >= 1.2). Legal values are none or a
+ comma-separated list of the following keywords: lines, vars,
+ and source. If debuglevel is not specified, by default, :none
+ will be appended to -g. If debug is not turned on, this attribute
+ will be ignored.
+ ]]></description>
+ </attribute>
+ <attribute name="depend" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Enables dependency-tracking for compilers
+ that support this (jikes and classic).]]></short-description>
+ <description><![CDATA[
+ Enables dependency-tracking for compilers
+ that support this (jikes and classic).
+ ]]></description>
+ </attribute>
+ <attribute name="deprecation" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates whether source should be
+ compiled with deprecation information; defaults to off.]]></short-description>
+ <description><![CDATA[
+ Indicates whether source should be
+ compiled with deprecation information; defaults to off.
+ ]]></description>
+ </attribute>
+ <attribute name="destdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory into which the Java source
+ files should be compiled.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory into which the Java source
+ files should be compiled.
+ ]]></description>
+ </attribute>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Java source file encoding name.]]></short-description>
+ <description><![CDATA[
+ Set the Java source file encoding name.
+ ]]></description>
+ </attribute>
+ <attribute name="executable" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the javac executable.]]></short-description>
+ <description><![CDATA[
+ Sets the the name of the javac executable.
+
+ <p>Ignored unless fork is true or extJavac has been specified
+ as the compiler.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="extdirs" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Extension directories that will be used during the
+ compilation.]]></short-description>
+ <description><![CDATA[
+ Sets the extension directories that will be used during the
+ compilation.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates whether the build will continue
+ even if there are compilation errors; defaults to true.]]></short-description>
+ <description><![CDATA[
+ Indicates whether the build will continue
+ even if there are compilation errors; defaults to true.
+ ]]></description>
+ </attribute>
+ <attribute name="fork" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, forks the javac compiler.]]></short-description>
+ <description><![CDATA[
+ If true, forks the javac compiler.
+ ]]></description>
+ </attribute>
+ <attribute name="includeantruntime" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, includes Ant's own classpath in the classpath.]]></short-description>
+ <description><![CDATA[
+ If true, includes Ant's own classpath in the classpath.
+ ]]></description>
+ </attribute>
+ <attribute name="includejavaruntime" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, includes the Java runtime libraries in the classpath.]]></short-description>
+ <description><![CDATA[
+ If true, includes the Java runtime libraries in the classpath.
+ ]]></description>
+ </attribute>
+ <attribute name="listfiles" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, list the source files being handed off to the compiler.]]></short-description>
+ <description><![CDATA[
+ If true, list the source files being handed off to the compiler.
+ ]]></description>
+ </attribute>
+ <attribute name="memoryinitialsize" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The initial size of the memory for the underlying VM
+ if javac is run externally; ignored otherwise.]]></short-description>
+ <description><![CDATA[
+ The initial size of the memory for the underlying VM
+ if javac is run externally; ignored otherwise.
+ Defaults to the standard VM memory setting.
+ (Examples: 83886080, 81920k, or 80m)
+ ]]></description>
+ </attribute>
+ <attribute name="memorymaximumsize" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The maximum size of the memory for the underlying VM
+ if javac is run externally; ignored otherwise.]]></short-description>
+ <description><![CDATA[
+ The maximum size of the memory for the underlying VM
+ if javac is run externally; ignored otherwise.
+ Defaults to the standard VM memory setting.
+ (Examples: 83886080, 81920k, or 80m)
+ ]]></description>
+ </attribute>
+ <attribute name="nowarn" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, enables the -nowarn option.]]></short-description>
+ <description><![CDATA[
+ If true, enables the -nowarn option.
+ ]]></description>
+ </attribute>
+ <attribute name="optimize" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, compiles with optimization enabled.]]></short-description>
+ <description><![CDATA[
+ If true, compiles with optimization enabled.
+ ]]></description>
+ </attribute>
+ <attribute name="source" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Value of the -source command-line switch; will be ignored
+ by all implementations except modern and jikes.]]></short-description>
+ <description><![CDATA[
+ Value of the -source command-line switch; will be ignored
+ by all implementations except modern and jikes.
+
+ If you use this attribute together with jikes, you must
+ make sure that your version of jikes supports the -source switch.
+ Legal values are 1.3 and 1.4 - by default, no -source argument
+ will be used at all.
+ ]]></description>
+ </attribute>
+ <attribute name="sourcepath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Sourcepath to be used for this compilation.]]></short-description>
+ <description><![CDATA[
+ Set the sourcepath to be used for this compilation.
+ ]]></description>
+ </attribute>
+ <attribute name="sourcepathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a source path defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a source path defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="srcdir" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Source directories to find the source Java files.]]></short-description>
+ <description><![CDATA[
+ Set the source directories to find the source Java files.
+ ]]></description>
+ </attribute>
+ <attribute name="target" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Target VM that the classes will be compiled for.]]></short-description>
+ <description><![CDATA[
+ Sets the target VM that the classes will be compiled for. Valid
+ strings are "1.1", "1.2", and "1.3".
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, asks the compiler for verbose output.]]></short-description>
+ <description><![CDATA[
+ If true, asks the compiler for verbose output.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="bootclasspath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a path to the bootclasspath.]]></short-description>
+ <description>
+ <![CDATA[Adds a path to the bootclasspath.]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a path to the classpath.]]></short-description>
+ <description>
+ <![CDATA[Adds a path to the classpath.]]>
+ </description>
+ </element>
+
+ <element name="compilerarg" type="org.apache.tools.ant.taskdefs.Javac.ImplementationSpecificArgument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds an implementation specific command-line argument.]]></short-description>
+ <description>
+ <![CDATA[Adds an implementation specific command-line argument.]]>
+ </description>
+ </element>
+
+ <element name="extdirs" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a path to extdirs.]]></short-description>
+ <description>
+ <![CDATA[Adds a path to extdirs.]]>
+ </description>
+ </element>
+
+ <element name="sourcepath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a path to sourcepath.]]></short-description>
+ <description>
+ <![CDATA[Adds a path to sourcepath.]]>
+ </description>
+ </element>
+
+ <element name="src" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a path for source compilation.]]></short-description>
+ <description>
+ <![CDATA[Adds a path for source compilation.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="javacc" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.javacc.JavaCC"
+ >
+
+ <short-description><![CDATA[JavaCC compiler compiler task.]]></short-description>
+ <description>
+ <![CDATA[JavaCC compiler compiler task.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="buildparser" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[BUILD_PARSER grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the BUILD_PARSER grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="buildtokenmanager" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[BUILD_TOKEN_MANAGER grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the BUILD_TOKEN_MANAGER grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="cachetokens" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[CACHE_TOKENS grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the CACHE_TOKENS grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="choiceambiguitycheck" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[CHOICE_AMBIGUITY_CHECK grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the CHOICE_AMBIGUITY_CHECK grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="commontokenaction" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[COMMON_TOKEN_ACTION grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the COMMON_TOKEN_ACTION grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="debuglookahead" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[DEBUG_LOOKAHEAD grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the DEBUG_LOOKAHEAD grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="debugparser" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[DEBUG_PARSER grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the DEBUG_PARSER grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="debugtokenmanager" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[DEBUG_TOKEN_MANAGER grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the DEBUG_TOKEN_MANAGER grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="errorreporting" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[ERROR_REPORTING grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the ERROR_REPORTING grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="forcelacheck" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[FORCE_LA_CHECK grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the FORCE_LA_CHECK grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="ignorecase" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[IGNORE_CASE grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the IGNORE_CASE grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="javacchome" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory containing the JavaCC distribution.]]></short-description>
+ <description><![CDATA[
+ The directory containing the JavaCC distribution.
+ ]]></description>
+ </attribute>
+ <attribute name="javaunicodeescape" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[JAVA_UNICODE_ESCAPE grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the JAVA_UNICODE_ESCAPE grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="lookahead" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[LOOKAHEAD grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the LOOKAHEAD grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="optimizetokenmanager" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[OPTIMIZE_TOKEN_MANAGER grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the OPTIMIZE_TOKEN_MANAGER grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="otherambiguitycheck" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[OTHER_AMBIGUITY_CHECK grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the OTHER_AMBIGUITY_CHECK grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="outputdirectory" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory to write the generated files to.]]></short-description>
+ <description><![CDATA[
+ The directory to write the generated files to.
+ If not set, the files are written to the directory
+ containing the grammar file.
+ ]]></description>
+ </attribute>
+ <attribute name="sanitycheck" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[SANITY_CHECK grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the SANITY_CHECK grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="static" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[STATIC grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the STATIC grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="target" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The grammar file to process.]]></short-description>
+ <description><![CDATA[
+ The grammar file to process.
+ ]]></description>
+ </attribute>
+ <attribute name="unicodeinput" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[UNICODE_INPUT grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the UNICODE_INPUT grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="usercharstream" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[USER_CHAR_STREAM grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the USER_CHAR_STREAM grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="usertokenmanager" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[USER_TOKEN_MANAGER grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the USER_TOKEN_MANAGER grammar option.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="javadoc" category="java"
+ classname="org.apache.tools.ant.taskdefs.Javadoc"
+ >
+
+ <!-- javadoc task -->
+<external>
+<description>
+
+<p>Generates code documentation using the javadoc tool.</p>
+
+<p>The source directory will be recursively scanned for Java source files to process
+but only those matching the inclusion rules, and not matching the exclusions rules
+will be passed to the javadoc tool. This
+allows wildcards to be used to choose between package names, reducing verbosity
+and management costs over time. This task, however, has no notion of
+&quot;changed&quot; files, unlike the <a href="javac.html">javac</a> task. This means
+all packages will be processed each time this task is run. In general, however,
+this task is used much less frequently.</p>
+
+<p>This task works seamlessly between different javadoc versions (1.1 and 1.2),
+with the obvious restriction that the 1.2 attributes will be ignored if run in a
+1.1 VM.</p>
+
+<p>NOTE: since javadoc calls System.exit(), javadoc cannot be run inside the
+same VM as ant without breaking functionality. For this reason, this task
+always forks the VM. This overhead is not significant since javadoc is normally a heavy
+application and will be called infrequently.</p>
+
+<p>NOTE: the packagelist attribute allows you to specify the list of packages to
+document outside of the Ant file. It's a much better practice to include everything
+inside the build.xml file. This option was added in order to make it easier to
+migrate from regular makefiles, where you would use this option of javadoc.
+The packages listed in packagelist are not checked, so the task performs even
+if some packages are missing or broken. Use this option if you wish to convert from
+an existing makefile. Once things are running you should then switch to the regular
+notation. </p>
+
+<p><i><b>DEPRECATION:</b> the javadoc2 task simply points to the javadoc task and it's
+there for back compatibility reasons. Since this task will be removed in future
+versions, you are strongly encouraged to use <a href="javadoc.html">javadoc</a>
+instead.</i></p>
+</description>
+
+<section anchor="examples" name="Example">
+<pre> &lt;javadoc packagenames=&quot;com.dummy.test.*&quot;
+ sourcepath=&quot;src&quot;
+ excludepackagenames=&quot;com.dummy.test.doc-files.*&quot;
+ defaultexcludes=&quot;yes&quot;
+ destdir=&quot;docs/api&quot;
+ author=&quot;true&quot;
+ version=&quot;true&quot;
+ use=&quot;true&quot;
+ windowtitle=&quot;Test API&quot;&gt;
+ &lt;doctitle&gt;&lt;![CDATA[&lt;h1&gt;Test&lt;/h1&gt;]]&gt;&lt;/doctitle&gt;
+ &lt;bottom&gt;&lt;![CDATA[&lt;i&gt;Copyright &amp;#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;]]&gt;&lt;/bottom&gt;
+ &lt;tag name=&quot;todo&quot; scope=&quot;all&quot; description=&quot;To do:&quot; /&gt;
+ &lt;group title=&quot;Group 1 Packages&quot; packages=&quot;com.dummy.test.a*&quot;/&gt;
+ &lt;group title=&quot;Group 2 Packages&quot; packages=&quot;com.dummy.test.b*:com.dummy.test.c*&quot;/&gt;
+ &lt;link offline=&quot;true&quot; href=&quot;http://java.sun.com/products/jdk/1.2/docs/api/&quot; packagelistLoc=&quot;C:\tmp&quot;/&gt;
+ &lt;link href=&quot;http://developer.java.sun.com/developer/products/xml/docs/api/&quot;/&gt;
+ &lt;/javadoc&gt;</pre>
+</section>
+</external>
+
+ <short-description><![CDATA[Generates Javadoc documentation for a collection of source code.]]></short-description>
+ <description>
+ <![CDATA[Generates Javadoc documentation for a collection
+ of source code.
+
+ <P>Current known limitations are:
+
+ <P><UL>
+ <LI>patterns must be of the form "xxx.*", every other pattern doesn't
+ work.
+ <LI>there is no control on arguments sanity since they are left
+ to the javadoc implementation.
+ <LI>argument J in javadoc1 is not supported (what is that for anyway?)
+ </UL>
+
+ <P>If no <CODE>doclet</CODE> is set, then the <CODE>version</CODE> and
+ <CODE>author</CODE> are by default <CODE>"yes"</CODE>.
+
+ <P>Note: This task is run on another VM because the Javadoc code calls
+ <CODE>System.exit()</CODE> which would break Ant functionality.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="access" type="org.apache.tools.ant.taskdefs.Javadoc.AccessType"
+ briefType="&quot;protected&quot;, &quot;public&quot;, &quot;package&quot;, &quot;private&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Scope to be processed.]]></short-description>
+ <description><![CDATA[
+ Set the scope to be processed. This is an alternative to the
+ use of the setPublic, setPrivate, etc methods. It gives better build
+ file control over what scope is processed.
+ ]]></description>
+ </attribute>
+ <attribute name="additionalparam" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set an additional parameter on the command line.]]></short-description>
+ <description><![CDATA[
+ Set an additional parameter on the command line
+ ]]></description>
+ </attribute>
+ <attribute name="author" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Include the author tag in the generated documentation.]]></short-description>
+ <description><![CDATA[
+ Include the author tag in the generated documentation.
+ ]]></description>
+ </attribute>
+ <attribute name="bootclasspathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a CLASSPATH defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a CLASSPATH defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="bootclasspath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Boot classpath to use.]]></short-description>
+ <description><![CDATA[
+ Set the boot classpath to use.
+ ]]></description>
+ </attribute>
+ <attribute name="bottom" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Text to be placed at the bottom of each output file.]]></short-description>
+ <description><![CDATA[
+ Set the text to be placed at the bottom of each output file.
+ ]]></description>
+ </attribute>
+ <attribute name="charset" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Charset for cross-platform viewing of generated documentation.]]></short-description>
+ <description><![CDATA[
+ Charset for cross-platform viewing of generated documentation.
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used for this javadoc run.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used for this javadoc run.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a CLASSPATH defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a CLASSPATH defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="defaultexcludes" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether default exclusions should be used or not.]]></short-description>
+ <description><![CDATA[
+ Sets whether default exclusions should be used or not.
+ ]]></description>
+ </attribute>
+ <attribute name="destdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where the Javadoc output will be generated.]]></short-description>
+ <description><![CDATA[
+ Set the directory where the Javadoc output will be generated.
+ ]]></description>
+ </attribute>
+ <attribute name="docencoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Output file encoding name.]]></short-description>
+ <description><![CDATA[
+ Output file encoding name.
+ ]]></description>
+ </attribute>
+ <attribute name="doclet" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Class that starts the doclet used in generating the
+ documentation.]]></short-description>
+ <description><![CDATA[
+ Set the class that starts the doclet used in generating the
+ documentation.
+ ]]></description>
+ </attribute>
+ <attribute name="docletpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath used to find the doclet class.]]></short-description>
+ <description><![CDATA[
+ Set the classpath used to find the doclet class.
+ ]]></description>
+ </attribute>
+ <attribute name="docletpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath used to find the doclet class by reference.]]></short-description>
+ <description><![CDATA[
+ Set the classpath used to find the doclet class by reference.
+ ]]></description>
+ </attribute>
+ <attribute name="doctitle" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Title of the generated overview page.]]></short-description>
+ <description><![CDATA[
+ Set the title of the generated overview page.
+ ]]></description>
+ </attribute>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Encoding name of the source files,.]]></short-description>
+ <description><![CDATA[
+ Set the encoding name of the source files,
+ ]]></description>
+ </attribute>
+ <attribute name="excludepackagenames" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[List of packages to be excluded.]]></short-description>
+ <description><![CDATA[
+ Set the list of packages to be excluded.
+ ]]></description>
+ </attribute>
+ <attribute name="extdirs" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Location of the extensions directories.]]></short-description>
+ <description><![CDATA[
+ Set the location of the extensions directories.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Should the build process fail if javadoc fails (as indicated by
+ a non zero return code)?.]]></short-description>
+ <description><![CDATA[
+ Should the build process fail if javadoc fails (as indicated by
+ a non zero return code)?
+
+ <p>Default is false.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="footer" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Footer text to be placed at the bottom of each output file.]]></short-description>
+ <description><![CDATA[
+ Set the footer text to be placed at the bottom of each output file.
+ ]]></description>
+ </attribute>
+ <attribute name="group" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Group specified packages together in overview page.]]></short-description>
+ <description><![CDATA[
+ Group specified packages together in overview page.
+ ]]></description>
+ </attribute>
+ <attribute name="header" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Header text to be placed at the top of each output file.]]></short-description>
+ <description><![CDATA[
+ Set the header text to be placed at the top of each output file.
+ ]]></description>
+ </attribute>
+ <attribute name="helpfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the HTML help file to use.]]></short-description>
+ <description><![CDATA[
+ Specifies the HTML help file to use.
+ ]]></description>
+ </attribute>
+ <attribute name="link" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Create links to javadoc output at the given URL.]]></short-description>
+ <description><![CDATA[
+ Create links to javadoc output at the given URL.
+ ]]></description>
+ </attribute>
+ <attribute name="linkoffline" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Link to docs at "url" using package list at "url2"
+ - separate the URLs by using a space character.]]></short-description>
+ <description><![CDATA[
+ Link to docs at "url" using package list at "url2"
+ - separate the URLs by using a space character.
+ ]]></description>
+ </attribute>
+ <attribute name="locale" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Local to use in documentation generation.]]></short-description>
+ <description><![CDATA[
+ Set the local to use in documentation generation.
+ ]]></description>
+ </attribute>
+ <attribute name="maxmemory" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Maximum memory to be used by the javadoc process.]]></short-description>
+ <description><![CDATA[
+ Set the maximum memory to be used by the javadoc process
+ ]]></description>
+ </attribute>
+ <attribute name="nodeprecated" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, do not include @deprecated information.]]></short-description>
+ <description><![CDATA[
+ If true, do not include @deprecated information.
+ ]]></description>
+ </attribute>
+ <attribute name="nodeprecatedlist" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, do not generate deprecated list.]]></short-description>
+ <description><![CDATA[
+ If true, do not generate deprecated list.
+ ]]></description>
+ </attribute>
+ <attribute name="nohelp" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, do not generate help link.]]></short-description>
+ <description><![CDATA[
+ If true, do not generate help link
+ ]]></description>
+ </attribute>
+ <attribute name="noindex" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, do not generate index.]]></short-description>
+ <description><![CDATA[
+ If true, do not generate index.
+ ]]></description>
+ </attribute>
+ <attribute name="nonavbar" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, do not generate navigation bar.]]></short-description>
+ <description><![CDATA[
+ If true, do not generate navigation bar.
+ ]]></description>
+ </attribute>
+ <attribute name="notree" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, do not generate class hierarchy.]]></short-description>
+ <description><![CDATA[
+ If true, do not generate class hierarchy.
+ ]]></description>
+ </attribute>
+ <attribute name="old" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicate whether Javadoc should produce old style (JDK 1.1)
+ documentation.]]></short-description>
+ <description><![CDATA[
+ Indicate whether Javadoc should produce old style (JDK 1.1)
+ documentation.
+
+ This is not supported by JDK 1.1 and has been phased out in JDK 1.4
+ ]]></description>
+ </attribute>
+ <attribute name="overview" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Specify the file containing the overview to be included in the generated
+ documentation.]]></short-description>
+ <description><![CDATA[
+ Specify the file containing the overview to be included in the generated
+ documentation.
+ ]]></description>
+ </attribute>
+ <attribute name="package" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicate whether only package, protected and public classes and
+ members are to be included in the scope processed.]]></short-description>
+ <description><![CDATA[
+ Indicate whether only package, protected and public classes and
+ members are to be included in the scope processed
+ ]]></description>
+ </attribute>
+ <attribute name="packagelist" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of a file containing the packages to process.]]></short-description>
+ <description><![CDATA[
+ The name of a file containing the packages to process.
+ ]]></description>
+ </attribute>
+ <attribute name="packagenames" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Package names to be processed.]]></short-description>
+ <description><![CDATA[
+ Set the package names to be processed.
+ ]]></description>
+ </attribute>
+ <attribute name="private" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicate whether all classes and
+ members are to be included in the scope processed.]]></short-description>
+ <description><![CDATA[
+ Indicate whether all classes and
+ members are to be included in the scope processed
+ ]]></description>
+ </attribute>
+ <attribute name="protected" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicate whether only protected and public classes and members are to
+ be included in the scope processed.]]></short-description>
+ <description><![CDATA[
+ Indicate whether only protected and public classes and members are to
+ be included in the scope processed
+ ]]></description>
+ </attribute>
+ <attribute name="public" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicate whether only public classes and members are to be included in
+ the scope processed.]]></short-description>
+ <description><![CDATA[
+ Indicate whether only public classes and members are to be included in
+ the scope processed
+ ]]></description>
+ </attribute>
+ <attribute name="serialwarn" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, generate warning about @serial tag.]]></short-description>
+ <description><![CDATA[
+ If true, generate warning about @serial tag.
+ ]]></description>
+ </attribute>
+ <attribute name="source" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Enables the -source switch, will be ignored if javadoc is not
+ the 1.4 version or a different doclet than the standard doclet
+ is used.]]></short-description>
+ <description><![CDATA[
+ Enables the -source switch, will be ignored if javadoc is not
+ the 1.4 version or a different doclet than the standard doclet
+ is used.
+ ]]></description>
+ </attribute>
+ <attribute name="sourcefiles" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[List of source files to process.]]></short-description>
+ <description><![CDATA[
+ Set the list of source files to process.
+ ]]></description>
+ </attribute>
+ <attribute name="sourcepath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Specify where to find source file.]]></short-description>
+ <description><![CDATA[
+ Specify where to find source file
+ ]]></description>
+ </attribute>
+ <attribute name="sourcepathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a CLASSPATH defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a CLASSPATH defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="splitindex" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Generate a split index.]]></short-description>
+ <description><![CDATA[
+ Generate a split index
+ ]]></description>
+ </attribute>
+ <attribute name="stylesheetfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the CSS stylesheet file to use.]]></short-description>
+ <description><![CDATA[
+ Specifies the CSS stylesheet file to use.
+ ]]></description>
+ </attribute>
+ <attribute name="use" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Generate the &quot;use&quot page for each package.]]></short-description>
+ <description><![CDATA[
+ Generate the &quot;use&quot page for each package.
+ ]]></description>
+ </attribute>
+ <attribute name="useexternalfile" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Work around command line length limit by using an external file
+ for the sourcefiles.]]></short-description>
+ <description><![CDATA[
+ Work around command line length limit by using an external file
+ for the sourcefiles.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Run javadoc in verbose mode.]]></short-description>
+ <description><![CDATA[
+ Run javadoc in verbose mode
+ ]]></description>
+ </attribute>
+ <attribute name="version" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Include the version tag in the generated documentation.]]></short-description>
+ <description><![CDATA[
+ Include the version tag in the generated documentation.
+ ]]></description>
+ </attribute>
+ <attribute name="windowtitle" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Title to be placed in the HTML &lt;title&gt; tag of the
+ generated documentation.]]></short-description>
+ <description><![CDATA[
+ Set the title to be placed in the HTML &lt;title&gt; tag of the
+ generated documentation.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="bottom" type="org.apache.tools.ant.taskdefs.Javadoc.Html"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Text to be placed at the bottom of each output file.]]></short-description>
+ <description>
+ <![CDATA[Set the text to be placed at the bottom of each output file.]]>
+ </description>
+ </element>
+
+ <element name="doctitle" type="org.apache.tools.ant.taskdefs.Javadoc.Html"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a document title to use for the overview page.]]></short-description>
+ <description>
+ <![CDATA[Add a document title to use for the overview page.]]>
+ </description>
+ </element>
+
+ <element name="excludepackage" type="org.apache.tools.ant.taskdefs.Javadoc.PackageName"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a package to be excluded from the javadoc run.]]></short-description>
+ <description>
+ <![CDATA[Add a package to be excluded from the javadoc run.]]>
+ </description>
+ </element>
+
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a fileset.]]></short-description>
+ <description>
+ <![CDATA[Adds a fileset.
+
+ <p>All included files will be added as sourcefiles. The task
+ will automatically add
+ <code>includes=&quot;**&#47;*.java&quot;</code> to the
+ fileset.</p>]]>
+ </description>
+ </element>
+
+ <element name="footer" type="org.apache.tools.ant.taskdefs.Javadoc.Html"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Footer text to be placed at the bottom of each output file.]]></short-description>
+ <description>
+ <![CDATA[Set the footer text to be placed at the bottom of each output file.]]>
+ </description>
+ </element>
+
+ <element name="header" type="org.apache.tools.ant.taskdefs.Javadoc.Html"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Header text to be placed at the top of each output file.]]></short-description>
+ <description>
+ <![CDATA[Set the header text to be placed at the top of each output file.]]>
+ </description>
+ </element>
+
+ <element name="package" type="org.apache.tools.ant.taskdefs.Javadoc.PackageName"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a single package to be processed.]]></short-description>
+ <description>
+ <![CDATA[Add a single package to be processed.
+
+ If the package name ends with &quot;.*&quot; the Javadoc task
+ will find and process all subpackages.]]>
+ </description>
+ </element>
+
+ <element name="packageset" type="org.apache.tools.ant.types.DirSet"
+ briefType="Dirset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a packageset.]]></short-description>
+ <description>
+ <![CDATA[Adds a packageset.
+
+ <p>All included directories will be translated into package
+ names be converting the directory separator into dots.</p>]]>
+ </description>
+ </element>
+
+ <element name="source" type="org.apache.tools.ant.taskdefs.Javadoc.SourceFile"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a single source file.]]></short-description>
+ <description>
+ <![CDATA[Add a single source file.]]>
+ </description>
+ </element>
+
+ <element name="taglet" type="org.apache.tools.ant.taskdefs.Javadoc.ExtensionInfo"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a taglet.]]></short-description>
+ <description>
+ <![CDATA[Add a taglet]]>
+ </description>
+ </element>
+
+ <element name="bootclasspath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create a Path to be configured with the boot classpath.]]></short-description>
+ <description>
+ <![CDATA[Create a Path to be configured with the boot classpath]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create a Path to be configured with the classpath to use.]]></short-description>
+ <description>
+ <![CDATA[Create a Path to be configured with the classpath to use]]>
+ </description>
+ </element>
+
+ <element name="doclet" type="org.apache.tools.ant.taskdefs.Javadoc.DocletInfo"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create a doclet to be used in the documentation generation.]]></short-description>
+ <description>
+ <![CDATA[Create a doclet to be used in the documentation generation.]]>
+ </description>
+ </element>
+
+ <element name="group" type="org.apache.tools.ant.taskdefs.Javadoc.GroupArgument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Separates packages on the overview page into whatever
+ groups you specify, one group per table.]]></short-description>
+ <description>
+ <![CDATA[Separates packages on the overview page into whatever
+ groups you specify, one group per table.]]>
+ </description>
+ </element>
+
+ <element name="link" type="org.apache.tools.ant.taskdefs.Javadoc.LinkArgument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create link to javadoc output at the given URL.]]></short-description>
+ <description>
+ <![CDATA[Create link to javadoc output at the given URL.]]>
+ </description>
+ </element>
+
+ <element name="sourcepath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create a path to be configured with the locations of the source
+ files.]]></short-description>
+ <description>
+ <![CDATA[Create a path to be configured with the locations of the source
+ files.]]>
+ </description>
+ </element>
+
+ <element name="tag" type="org.apache.tools.ant.taskdefs.Javadoc.TagArgument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Creates and adds a -tag argument.]]></short-description>
+ <description>
+ <![CDATA[Creates and adds a -tag argument. This is used to specify
+ custom tags. This argument is only available for JavaDoc 1.4,
+ and will generate a verbose message (and then be ignored)
+ when run on Java versions below 1.4.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="javah" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.Javah"
+ >
+
+ <short-description><![CDATA[Generates JNI header files using javah.]]></short-description>
+ <description>
+ <![CDATA[Generates JNI header files using javah.
+
+ This task can take the following arguments:
+ <ul>
+ <li>classname - the fully-qualified name of a class</li>
+ <li>outputFile - Concatenates the resulting header or source files for all
+ the classes listed into this file</li>
+ <li>destdir - Sets the directory where javah saves the header files or the
+ stub files</li>
+ <li>classpath</li>
+ <li>bootclasspath</li>
+ <li>force - Specifies that output files should always be written
+(JDK1.2 only)</li>
+ <li>old - Specifies that old JDK1.0-style header files should be generated
+ (otherwise output file contain JNI-style native method
+ function prototypes) (JDK1.2 only)</li>
+ <li>stubs - generate C declarations from the Java object file (used with old)</li>
+ <li>verbose - causes javah to print a message to stdout concerning the status
+ of the generated files</li>
+ <li>extdirs - Override location of installed extensions</li>
+ </ul>
+ Of these arguments, either <b>outputFile</b> or <b>destdir</b> is required,
+ but not both. More than one classname may be specified, using a comma-separated
+ list or by using <code>&lt;class name="xxx"&gt;</code> elements within the task.
+ <p>
+ When this task executes, it will generate C header and source files that
+ are needed to implement native methods.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="bootclasspathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a classpath defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a classpath defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="bootclasspath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Location of bootstrap class files.]]></short-description>
+ <description><![CDATA[
+ location of bootstrap class files.
+ ]]></description>
+ </attribute>
+ <attribute name="class" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The fully-qualified name of the class (or classes, separated by commas).]]></short-description>
+ <description><![CDATA[
+ the fully-qualified name of the class (or classes, separated by commas).
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[The classpath to use.]]></short-description>
+ <description><![CDATA[
+ the classpath to use.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a classpath defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a classpath defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="destdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory into which the Java source
+ files should be compiled.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory into which the Java source
+ files should be compiled.
+ ]]></description>
+ </attribute>
+ <attribute name="force" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, output files should always be written (JDK1.2 only).]]></short-description>
+ <description><![CDATA[
+ If true, output files should always be written (JDK1.2 only).
+ ]]></description>
+ </attribute>
+ <attribute name="old" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, specifies that old JDK1.0-style header files should be
+ generated.
+ (otherwise output file contain JNI-style native method function prototypes) (JDK1.2 only).]]></short-description>
+ <description><![CDATA[
+ If true, specifies that old JDK1.0-style header files should be
+ generated.
+ (otherwise output file contain JNI-style native method function prototypes) (JDK1.2 only)
+ ]]></description>
+ </attribute>
+ <attribute name="outputfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Concatenates the resulting header or source files for all
+ the classes listed into this file.]]></short-description>
+ <description><![CDATA[
+ Concatenates the resulting header or source files for all
+ the classes listed into this file.
+ ]]></description>
+ </attribute>
+ <attribute name="stubs" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, generate C declarations from the Java object file (used with old).]]></short-description>
+ <description><![CDATA[
+ If true, generate C declarations from the Java object file (used with old).
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, causes Javah to print a message concerning
+ the status of the generated files.]]></short-description>
+ <description><![CDATA[
+ If true, causes Javah to print a message concerning
+ the status of the generated files.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="bootclasspath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds path to bootstrap class files.]]></short-description>
+ <description>
+ <![CDATA[Adds path to bootstrap class files.]]>
+ </description>
+ </element>
+
+ <element name="class" type="org.apache.tools.ant.taskdefs.optional.Javah.ClassArgument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds class to process.]]></short-description>
+ <description>
+ <![CDATA[Adds class to process.]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Path to use for classpath.]]></short-description>
+ <description>
+ <![CDATA[Path to use for classpath.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="jdepend" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.jdepend.JDependTask"
+ >
+
+ <short-description><![CDATA[Runs JDepend tests.]]></short-description>
+ <description>
+ <![CDATA[Runs JDepend tests.
+
+ <p>JDepend is a tool to generate design quality metrics for each Java package.
+ It has been initially created by Mike Clark. JDepend can be found at <a
+ href="http://www.clarkware.com/software/JDepend.html">http://www.clarkware.com/software/JDepend.html</a>.
+
+ The current implementation spawn a new Java VM.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used for this compilation.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used for this compilation.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a classpath defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a classpath defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory to invoke the VM in.]]></short-description>
+ <description><![CDATA[
+ The directory to invoke the VM in. Ignored if no JVM is forked.
+ ]]></description>
+ </attribute>
+ <attribute name="fork" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, forks into a new JVM.]]></short-description>
+ <description><![CDATA[
+ If true, forks into a new JVM. Default: false.
+ ]]></description>
+ </attribute>
+ <attribute name="format" type="org.apache.tools.ant.taskdefs.optional.jdepend.JDependTask.FormatAttribute"
+ briefType="&quot;xml&quot;, &quot;text&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[The format to write the output in, "xml" or "text".]]></short-description>
+ <description><![CDATA[
+ The format to write the output in, "xml" or "text".
+ ]]></description>
+ </attribute>
+ <attribute name="haltonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether or not to halt on failure.]]></short-description>
+ <description><![CDATA[
+ Whether or not to halt on failure. Default: false.
+ ]]></description>
+ </attribute>
+ <attribute name="jvm" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The command used to invoke a forked Java Virtual Machine.]]></short-description>
+ <description><![CDATA[
+ The command used to invoke a forked Java Virtual Machine.
+
+ Default is <tt>java</tt>. Ignored if no JVM is forked.
+ ]]></description>
+ </attribute>
+ <attribute name="outputfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The output file name.]]></short-description>
+ <description><![CDATA[
+ The output file name.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a path to the classpath.]]></short-description>
+ <description>
+ <![CDATA[Adds a path to the classpath.]]>
+ </description>
+ </element>
+
+ <element name="sourcespath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a path to source code to analyze.]]></short-description>
+ <description>
+ <![CDATA[Adds a path to source code to analyze.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="jjtree" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.javacc.JJTree"
+ >
+
+ <short-description><![CDATA[Runs the JJTree compiler compiler.]]></short-description>
+ <description>
+ <![CDATA[Runs the JJTree compiler compiler.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="buildnodefiles" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[BUILD_NODE_FILES grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the BUILD_NODE_FILES grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="javacchome" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory containing the JavaCC distribution.]]></short-description>
+ <description><![CDATA[
+ The directory containing the JavaCC distribution.
+ ]]></description>
+ </attribute>
+ <attribute name="multi" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[MULTI grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the MULTI grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="nodedefaultvoid" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[NODE_DEFAULT_VOID grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the NODE_DEFAULT_VOID grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="nodefactory" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[NODE_FACTORY grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the NODE_FACTORY grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="nodepackage" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[NODE_PACKAGE grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the NODE_PACKAGE grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="nodeprefix" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[NODE_PREFIX grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the NODE_PREFIX grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="nodescopehook" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[NODE_SCOPE_HOOK grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the NODE_SCOPE_HOOK grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="nodeusesparser" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[NODE_USES_PARSER grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the NODE_USES_PARSER grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="outputdirectory" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory to write the generated file to.]]></short-description>
+ <description><![CDATA[
+ The directory to write the generated file to.
+ If not set, the files are written to the directory
+ containing the grammar file.
+ ]]></description>
+ </attribute>
+ <attribute name="static" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[STATIC grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the STATIC grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="target" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The jjtree grammar file to process.]]></short-description>
+ <description><![CDATA[
+ The jjtree grammar file to process.
+ ]]></description>
+ </attribute>
+ <attribute name="visitor" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[VISITOR grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the VISITOR grammar option.
+ ]]></description>
+ </attribute>
+ <attribute name="visitorexception" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[VISITOR_EXCEPTION grammar option.]]></short-description>
+ <description><![CDATA[
+ Sets the VISITOR_EXCEPTION grammar option.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="jpcoverage" category="metrics"
+ classname="org.apache.tools.ant.taskdefs.optional.sitraka.Coverage"
+ >
+
+ <short-description><![CDATA[Runs Sitraka JProbe Coverage.]]></short-description>
+ <description>
+ <![CDATA[Runs Sitraka JProbe Coverage.
+
+ Options are pretty numerous, you'd better check the manual for a full
+ descriptions of options. (not that simple since they differ from the online
+ help, from the usage command line and from the examples...)
+ <p>
+ For additional information, visit <a href="http://www.sitraka.com">www.sitraka.com</a>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="applet" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, run an applet.]]></short-description>
+ <description><![CDATA[
+ If true, run an applet.
+ ]]></description>
+ </attribute>
+ <attribute name="classname" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Classname to run as standalone or runner for filesets.]]></short-description>
+ <description><![CDATA[
+ classname to run as standalone or runner for filesets.
+ ]]></description>
+ </attribute>
+ <attribute name="exitprompt" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Toggles display of the console prompt: always, error, never.]]></short-description>
+ <description><![CDATA[
+ Toggles display of the console prompt: always, error, never
+ ]]></description>
+ </attribute>
+ <attribute name="finalsnapshot" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Type of snapshot to send at program termination: none, coverage, all.]]></short-description>
+ <description><![CDATA[
+ Type of snapshot to send at program termination: none, coverage, all.
+ Can be null, default to none
+ ]]></description>
+ </attribute>
+ <attribute name="home" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory where JProbe is installed.]]></short-description>
+ <description><![CDATA[
+ The directory where JProbe is installed.
+ ]]></description>
+ </attribute>
+ <attribute name="javaexe" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the java executable.]]></short-description>
+ <description><![CDATA[
+ Path to the java executable.
+ ]]></description>
+ </attribute>
+ <attribute name="recordfromstart" type="org.apache.tools.ant.taskdefs.optional.sitraka.Coverage.Recordfromstart"
+ briefType="&quot;coverage&quot;, &quot;none&quot;, &quot;all&quot;" required="NOTDEFINED">
+ <short-description><![CDATA["all", "coverage", or "none".]]></short-description>
+ <description><![CDATA[
+ "all", "coverage", or "none".
+ ]]></description>
+ </attribute>
+ <attribute name="seedname" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Seed name for snapshot file.]]></short-description>
+ <description><![CDATA[
+ seed name for snapshot file. Can be null, default to snap
+ ]]></description>
+ </attribute>
+ <attribute name="snapshotdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The path to the directory where snapshot files are stored.]]></short-description>
+ <description><![CDATA[
+ The path to the directory where snapshot files are stored.
+ Choose a directory that is reachable by both the remote
+ and local computers, and enter the same path on the command-line
+ and in the viewer.
+ ]]></description>
+ </attribute>
+ <attribute name="tracknatives" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, track native methods.]]></short-description>
+ <description><![CDATA[
+ If true, track native methods.
+ ]]></description>
+ </attribute>
+ <attribute name="vm" type="org.apache.tools.ant.taskdefs.optional.sitraka.Coverage.Javavm"
+ briefType="&quot;java2&quot;, &quot;jdk118&quot;, &quot;jdk117&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates which virtual machine to run: "jdk117", "jdk118" or "java2".]]></short-description>
+ <description><![CDATA[
+ Indicates which virtual machine to run: "jdk117", "jdk118" or "java2".
+ Can be null, default to "java2".
+ ]]></description>
+ </attribute>
+ <attribute name="warnlevel" type="java.lang.Integer"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Set warning level (0-3, where 0 is the least amount of warnings).]]></short-description>
+ <description><![CDATA[
+ Set warning level (0-3, where 0 is the least amount of warnings).
+ ]]></description>
+ </attribute>
+ <attribute name="workingdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The physical path to the working directory for the VM.]]></short-description>
+ <description><![CDATA[
+ The physical path to the working directory for the VM.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[The classnames to execute.]]></short-description>
+ <description>
+ <![CDATA[the classnames to execute.]]>
+ </description>
+ </element>
+
+ <element name="arg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a command argument.]]></short-description>
+ <description>
+ <![CDATA[Adds a command argument.]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to run the files.]]></short-description>
+ <description>
+ <![CDATA[classpath to run the files.]]>
+ </description>
+ </element>
+
+ <element name="filters" type="org.apache.tools.ant.taskdefs.optional.sitraka.Filters"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Defines class/method filters based on pattern matching.]]></short-description>
+ <description>
+ <![CDATA[Defines class/method filters based on pattern matching.
+ The syntax is filters is similar to a fileset.]]>
+ </description>
+ </element>
+
+ <element name="jvmarg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a JVM argument.]]></short-description>
+ <description>
+ <![CDATA[Adds a JVM argument.]]>
+ </description>
+ </element>
+
+ <element name="socket" type="org.apache.tools.ant.taskdefs.optional.sitraka.Socket"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Define a host and port to connect to if you want to do
+ remote viewing.]]></short-description>
+ <description>
+ <![CDATA[Define a host and port to connect to if you want to do
+ remote viewing.]]>
+ </description>
+ </element>
+
+ <element name="triggers" type="org.apache.tools.ant.taskdefs.optional.sitraka.Triggers"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Defines events to use for interacting with the
+ collection of data performed during coverage.]]></short-description>
+ <description>
+ <![CDATA[Defines events to use for interacting with the
+ collection of data performed during coverage.
+
+ For example you may run a whole application but only decide
+ to collect data once it reaches a certain method and once it
+ exits another one.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="jpcovmerge" category="metrics"
+ classname="org.apache.tools.ant.taskdefs.optional.sitraka.CovMerge"
+ >
+
+ <short-description><![CDATA[Runs the snapshot merge utility for JProbe Coverage.]]></short-description>
+ <description>
+ <![CDATA[Runs the snapshot merge utility for JProbe Coverage.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="home" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory where JProbe is installed.]]></short-description>
+ <description><![CDATA[
+ The directory where JProbe is installed.
+ ]]></description>
+ </attribute>
+ <attribute name="tofile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Output snapshot file.]]></short-description>
+ <description><![CDATA[
+ Set the output snapshot file.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, perform the merge in verbose mode giving details
+ about the snapshot processing.]]></short-description>
+ <description><![CDATA[
+ If true, perform the merge in verbose mode giving details
+ about the snapshot processing.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a fileset containing the snapshots to include.]]></short-description>
+ <description>
+ <![CDATA[add a fileset containing the snapshots to include.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="jpcovreport" category="metrics"
+ classname="org.apache.tools.ant.taskdefs.optional.sitraka.CovReport"
+ >
+
+ <short-description><![CDATA[Runs the JProbe Coverage 3.0 snapshot merge utility.]]></short-description>
+ <description>
+ <![CDATA[Runs the JProbe Coverage 3.0 snapshot merge utility.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="format" type="org.apache.tools.ant.taskdefs.optional.sitraka.CovReport.ReportFormat"
+ briefType="&quot;html&quot;, &quot;text&quot;, &quot;xml&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Format of the report: "html", "text", or "xml".]]></short-description>
+ <description><![CDATA[
+ set the format of the report: "html", "text", or "xml"
+ ]]></description>
+ </attribute>
+ <attribute name="home" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory where JProbe is installed.]]></short-description>
+ <description><![CDATA[
+ The directory where JProbe is installed.
+ ]]></description>
+ </attribute>
+ <attribute name="includesource" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, include text of the source code lines.]]></short-description>
+ <description><![CDATA[
+ If true, include text of the source code lines.
+ Only applies to format="xml" and type="verydetailed"
+ ]]></description>
+ </attribute>
+ <attribute name="percent" type="java.lang.Integer"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[A numeric value for the threshold for printing methods.]]></short-description>
+ <description><![CDATA[
+ A numeric value for the threshold for printing methods.
+ Must be between 0 and 100.
+ ]]></description>
+ </attribute>
+ <attribute name="snapshot" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the snapshot file that is the source to the report.]]></short-description>
+ <description><![CDATA[
+ The name of the snapshot file that is the source to the report.
+ ]]></description>
+ </attribute>
+ <attribute name="tofile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the generated output file.]]></short-description>
+ <description><![CDATA[
+ The name of the generated output file.
+ ]]></description>
+ </attribute>
+ <attribute name="type" type="org.apache.tools.ant.taskdefs.optional.sitraka.CovReport.ReportType"
+ briefType="&quot;executive&quot;, &quot;summary&quot;, &quot;detailed&quot;, &quot;verydetailed&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[The type of report to be generated: "executive", "summary",
+ "detailed" or "verydetailed".]]></short-description>
+ <description><![CDATA[
+ The type of report to be generated: "executive", "summary",
+ "detailed" or "verydetailed".
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="reference" type="org.apache.tools.ant.taskdefs.optional.sitraka.CovReport.Reference"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of classes whose coverage information will be
+ checked against.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of classes whose coverage information will be
+ checked against.]]>
+ </description>
+ </element>
+
+ <element name="sourcepath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a path to source files.]]></short-description>
+ <description>
+ <![CDATA[Adds a path to source files.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="jspc" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.jsp.JspC"
+ matchingTask="true">
+
+ <short-description><![CDATA[Runs a JSP compiler.]]></short-description>
+ <description>
+ <![CDATA[Runs a JSP compiler.
+
+ <p> This task takes the given jsp files and compiles them into java
+ files. It is then up to the user to compile the java files into classes.
+
+ <p> The task requires the srcdir and destdir attributes to be
+ set. This Task is a MatchingTask, so the files to be compiled can be
+ specified using includes/excludes attributes or nested include/exclude
+ elements. Optional attributes are verbose (set the verbosity level passed
+ to jasper), package (name of the destination package for generated java
+ classes and classpath (the classpath to use when running the jsp
+ compiler).
+ <p> This task supports the nested elements classpath (A Path) and
+ classpathref (A Reference) which can be used in preference to the
+ attribute classpath, if the jsp compiler is not already in the ant
+ classpath.
+
+ <p><h4>Usage</h4>
+ <pre>
+ &lt;jspc srcdir="${basedir}/src/war"
+ destdir="${basedir}/gensrc"
+ package="com.i3sp.jsp"
+ verbose="9"&gt;
+ &lt;include name="**\/*.jsp" /&gt;
+ &lt;/jspc&gt;
+ </pre>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used for this compilation.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used for this compilation.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a classpath defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a classpath defined elsewhere
+ ]]></description>
+ </attribute>
+ <attribute name="compiler" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Class name of a JSP compiler adapter.]]></short-description>
+ <description><![CDATA[
+ Class name of a JSP compiler adapter.
+ ]]></description>
+ </attribute>
+ <attribute name="compilerclasspath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used to find this compiler adapter.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used to find this compiler adapter
+ ]]></description>
+ </attribute>
+ <attribute name="destdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory into which the JSP source
+ files should be compiled.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory into which the JSP source
+ files should be compiled.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether or not the build should halt if compilation fails.]]></short-description>
+ <description><![CDATA[
+ Whether or not the build should halt if compilation fails.
+ Defaults to <code>true</code>.
+ ]]></description>
+ </attribute>
+ <attribute name="ieplugin" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Java Plugin CLASSID for Internet Explorer.]]></short-description>
+ <description><![CDATA[
+ Java Plugin CLASSID for Internet Explorer
+ ]]></description>
+ </attribute>
+ <attribute name="mapped" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, generate separate write() calls for each HTML line
+ in the JSP.]]></short-description>
+ <description><![CDATA[
+ If true, generate separate write() calls for each HTML line
+ in the JSP.
+ ]]></description>
+ </attribute>
+ <attribute name="package" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the package the compiled jsp files should be in.]]></short-description>
+ <description><![CDATA[
+ Set the name of the package the compiled jsp files should be in.
+ ]]></description>
+ </attribute>
+ <attribute name="srcdir" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Path for source JSP files.]]></short-description>
+ <description><![CDATA[
+ Path for source JSP files.
+ ]]></description>
+ </attribute>
+ <attribute name="uribase" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The URI context of relative URI references in the JSP pages.]]></short-description>
+ <description><![CDATA[
+ The URI context of relative URI references in the JSP pages.
+ If it does not exist then it is derived from the location
+ of the file relative to the declared or derived value of uriroot.
+ ]]></description>
+ </attribute>
+ <attribute name="uriroot" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The root directory that uri files should be resolved
+ against.]]></short-description>
+ <description><![CDATA[
+ The root directory that uri files should be resolved
+ against. (Default is the directory jspc is invoked from)
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Verbose level of the compiler.]]></short-description>
+ <description><![CDATA[
+ Set the verbose level of the compiler
+ ]]></description>
+ </attribute>
+ <attribute name="webinc" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Output filename for the fraction of web.xml that lists
+ servlets.]]></short-description>
+ <description><![CDATA[
+ output filename for the fraction of web.xml that lists
+ servlets.
+ ]]></description>
+ </attribute>
+ <attribute name="webxml" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Filename for web.xml.]]></short-description>
+ <description><![CDATA[
+ Filename for web.xml.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="webapp" type="org.apache.tools.ant.taskdefs.optional.jsp.JspC.WebAppParameter"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a single webapp.]]></short-description>
+ <description>
+ <![CDATA[Adds a single webapp.]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a path to the classpath.]]></short-description>
+ <description>
+ <![CDATA[Adds a path to the classpath.]]>
+ </description>
+ </element>
+
+ <element name="compilerclasspath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Support nested compiler classpath, used to locate compiler adapter.]]></short-description>
+ <description>
+ <![CDATA[Support nested compiler classpath, used to locate compiler adapter]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="junit" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
+ >
+
+ <short-description><![CDATA[Runs JUnit tests.]]></short-description>
+ <description>
+ <![CDATA[Runs JUnit tests.
+
+ <p> JUnit is a framework to create unit test. It has been initially
+ created by Erich Gamma and Kent Beck. JUnit can be found at <a
+ href="http://www.junit.org">http://www.junit.org</a>.
+
+ <p> <code>JUnitTask</code> can run a single specific
+ <code>JUnitTest</code> using the <code>test</code> element.</p>
+ For example, the following target <code><pre>
+ &lt;target name="test-int-chars" depends="jar-test"&gt;
+ &lt;echo message="testing international characters"/&gt;
+ &lt;junit printsummary="no" haltonfailure="yes" fork="false"&gt;
+ &lt;classpath refid="classpath"/&gt;
+ &lt;formatter type="plain" usefile="false" /&gt;
+ &lt;test name="org.apache.ecs.InternationalCharTest" /&gt;
+ &lt;/junit&gt;
+ &lt;/target&gt;
+ </pre></code>
+ <p>runs a single junit test
+ (<code>org.apache.ecs.InternationalCharTest</code>) in the current
+ VM using the path with id <code>classpath</code> as classpath and
+ presents the results formatted using the standard
+ <code>plain</code> formatter on the command line.</p>
+
+ <p> This task can also run batches of tests. The
+ <code>batchtest</code> element creates a <code>BatchTest</code>
+ based on a fileset. This allows, for example, all classes found in
+ directory to be run as testcases.</p>
+
+ <p>For example,</p><code><pre>
+ &lt;target name="run-tests" depends="dump-info,compile-tests" if="junit.present"&gt;
+ &lt;junit printsummary="no" haltonfailure="yes" fork="${junit.fork}"&gt;
+ &lt;jvmarg value="-classic"/&gt;
+ &lt;classpath refid="tests-classpath"/&gt;
+ &lt;sysproperty key="build.tests" value="${build.tests}"/&gt;
+ &lt;formatter type="brief" usefile="false" /&gt;
+ &lt;batchtest&gt;
+ &lt;fileset dir="${tests.dir}"&gt;
+ &lt;include name="**&#047;*Test*" /&gt;
+ &lt;/fileset&gt;
+ &lt;/batchtest&gt;
+ &lt;/junit&gt;
+ &lt;/target&gt;
+ </pre></code>
+ <p>this target finds any classes with a <code>test</code> directory
+ anywhere in their path (under the top <code>${tests.dir}</code>, of
+ course) and creates <code>JUnitTest</code>'s for each one.</p>
+
+ <p> Of course, <code>&lt;junit&gt;</code> and
+ <code>&lt;batch&gt;</code> elements can be combined for more
+ complex tests. For an example, see the ant <code>build.xml</code>
+ target <code>run-tests</code> (the second example is an edited
+ version).</p>
+
+ <p> To spawn a new Java VM to prevent interferences between
+ different testcases, you need to enable <code>fork</code>. A
+ number of attributes and elements allow you to set up how this JVM
+ runs.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory to invoke the VM in.]]></short-description>
+ <description><![CDATA[
+ The directory to invoke the VM in. Ignored if no JVM is forked.
+ ]]></description>
+ </attribute>
+ <attribute name="errorproperty" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Property to set to "true" if there is a error in a test.]]></short-description>
+ <description><![CDATA[
+ Property to set to "true" if there is a error in a test.
+
+ <p>This property is applied on all BatchTest (batchtest) and
+ JUnitTest (test), however, it can possibly be overriden by
+ their own properties.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="failureproperty" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Property to set to "true" if there is a failure in a test.]]></short-description>
+ <description><![CDATA[
+ Property to set to "true" if there is a failure in a test.
+
+ <p>This property is applied on all BatchTest (batchtest) and
+ JUnitTest (test), however, it can possibly be overriden by
+ their own properties.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="filtertrace" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, smartly filter the stack frames of
+ JUnit errors and failures before reporting them.]]></short-description>
+ <description><![CDATA[
+ If true, smartly filter the stack frames of
+ JUnit errors and failures before reporting them.
+
+ <p>This property is applied on all BatchTest (batchtest) and
+ JUnitTest (test) however it can possibly be overridden by their
+ own properties.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="fork" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, JVM should be forked for each test.]]></short-description>
+ <description><![CDATA[
+ If true, JVM should be forked for each test.
+
+ <p>It avoids interference between testcases and possibly avoids
+ hanging the build. this property is applied on all BatchTest
+ (batchtest) and JUnitTest (test) however it can possibly be
+ overridden by their own properties.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="haltonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, stop the build process when there is an error in a test.]]></short-description>
+ <description><![CDATA[
+ If true, stop the build process when there is an error in a test.
+ This property is applied on all BatchTest (batchtest) and JUnitTest
+ (test) however it can possibly be overridden by their own
+ properties.
+ ]]></description>
+ </attribute>
+ <attribute name="haltonfailure" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, stop the build process if a test fails
+ (errors are considered failures as well).]]></short-description>
+ <description><![CDATA[
+ If true, stop the build process if a test fails
+ (errors are considered failures as well).
+ This property is applied on all BatchTest (batchtest) and
+ JUnitTest (test) however it can possibly be overridden by their
+ own properties.
+ ]]></description>
+ </attribute>
+ <attribute name="includeantruntime" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, include ant.jar, optional.jar and junit.jar in the forked VM.]]></short-description>
+ <description><![CDATA[
+ If true, include ant.jar, optional.jar and junit.jar in the forked VM.
+ ]]></description>
+ </attribute>
+ <attribute name="jvm" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The command used to invoke the Java Virtual Machine,
+ default is 'java'.]]></short-description>
+ <description><![CDATA[
+ The command used to invoke the Java Virtual Machine,
+ default is 'java'. The command is resolved by
+ java.lang.Runtime.exec(). Ignored if fork is disabled.
+ ]]></description>
+ </attribute>
+ <attribute name="maxmemory" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Maximum memory to be used by all forked JVMs.]]></short-description>
+ <description><![CDATA[
+ Set the maximum memory to be used by all forked JVMs.
+ ]]></description>
+ </attribute>
+ <attribute name="newenvironment" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, use a new environment when forked.]]></short-description>
+ <description><![CDATA[
+ If true, use a new environment when forked.
+
+ <p>Will be ignored if we are not forking a new VM.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="printsummary" type="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.SummaryAttribute"
+ briefType="&quot;true&quot;, &quot;yes&quot;, &quot;false&quot;, &quot;no&quot;, &quot;on&quot;, &quot;off&quot;, &quot;withOutAndErr&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[If true, print one-line statistics for each test, or "withOutAndErr"
+ to also show standard output and error.]]></short-description>
+ <description><![CDATA[
+ If true, print one-line statistics for each test, or "withOutAndErr"
+ to also show standard output and error.
+
+ Can take the values on, off, and withOutAndErr.
+ ]]></description>
+ </attribute>
+ <attribute name="showoutput" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, send any output generated by tests to Ant's logging system
+ as well as to the formatters.]]></short-description>
+ <description><![CDATA[
+ If true, send any output generated by tests to Ant's logging system
+ as well as to the formatters.
+ By default only the formatters receive the output.
+
+ <p>Output will always be passed to the formatters and not by
+ shown by default. This option should for example be set for
+ tests that are interactive and prompt the user to do
+ something.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="timeout" type="java.lang.Integer"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Timeout value (in milliseconds).]]></short-description>
+ <description><![CDATA[
+ Set the timeout value (in milliseconds).
+
+ <p>If the test is running for more than this value, the test
+ will be canceled. (works only when in 'fork' mode).</p>
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="env" type="org.apache.tools.ant.types.Environment.Variable"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds an environment variable; used when forking.]]></short-description>
+ <description>
+ <![CDATA[Adds an environment variable; used when forking.
+
+ <p>Will be ignored if we are not forking a new VM.</p>]]>
+ </description>
+ </element>
+
+ <element name="formatter" type="org.apache.tools.ant.taskdefs.optional.junit.FormatterElement"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a new formatter to all tests of this task.]]></short-description>
+ <description>
+ <![CDATA[Add a new formatter to all tests of this task.]]>
+ </description>
+ </element>
+
+ <element name="sysproperty" type="org.apache.tools.ant.types.Environment.Variable"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a system property that tests can access.]]></short-description>
+ <description>
+ <![CDATA[Adds a system property that tests can access.
+ This might be useful to tranfer Ant properties to the
+ testcases when JVM forking is not enabled.]]>
+ </description>
+ </element>
+
+ <element name="test" type="org.apache.tools.ant.taskdefs.optional.junit.JUnitTest"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a new single testcase.]]></short-description>
+ <description>
+ <![CDATA[Add a new single testcase.]]>
+ </description>
+ </element>
+
+ <element name="batchtest" type="org.apache.tools.ant.taskdefs.optional.junit.BatchTest"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of tests based on pattern matching.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of tests based on pattern matching.]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds path to classpath used for tests.]]></short-description>
+ <description>
+ <![CDATA[Adds path to classpath used for tests.]]>
+ </description>
+ </element>
+
+ <element name="jvmarg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a JVM argument; ignored if not forking.]]></short-description>
+ <description>
+ <![CDATA[Adds a JVM argument; ignored if not forking.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="junitreport" category="testing"
+ classname="org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator"
+ >
+
+ <short-description><![CDATA[Aggregates all &lt;junit&gt; XML formatter testsuite data under a specific directory and transforms the results via XSLT.]]></short-description>
+ <description>
+ <![CDATA[Aggregates all &lt;junit&gt; XML formatter testsuite data under
+ a specific directory and transforms the results via XSLT.
+ It is not particulary clean but
+ should be helpful while I am thinking about another technique.
+
+ <p> The main problem is due to the fact that a JVM can be forked for a testcase
+ thus making it impossible to aggregate all testcases since the listener is
+ (obviously) in the forked JVM. A solution could be to write a
+ TestListener that will receive events from the TestRunner via sockets. This
+ is IMHO the simplest way to do it to avoid this file hacking thing.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="todir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory where the results should be written.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory where the results should be written. If not
+ set if will use {@link #DEFAULT_DIR}. When given a relative directory
+ it will resolve it from the project directory.
+ ]]></description>
+ </attribute>
+ <attribute name="tofile" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the aggregegated results file.]]></short-description>
+ <description><![CDATA[
+ Set the name of the aggregegated results file. It must be relative
+ from the <tt>todir</tt> attribute. If not set it will use {@link #DEFAULT_FILENAME}
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a new fileset containing the XML results to aggregate.]]></short-description>
+ <description>
+ <![CDATA[Add a new fileset containing the XML results to aggregate]]>
+ </description>
+ </element>
+
+ <element name="report" type="org.apache.tools.ant.taskdefs.optional.junit.AggregateTransformer"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Generate a report based on the document created by the merge.]]></short-description>
+ <description>
+ <![CDATA[Generate a report based on the document created by the merge.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="keysubst" category="other"
+ classname="org.apache.tools.ant.taskdefs.KeySubst"
+ deprecated="true"
+ >
+
+ <short-description><![CDATA[Keyword substitution.]]></short-description>
+ <description>
+ <![CDATA[Keyword substitution. Input file is written to output file.
+ Do not make input file same as output file.
+ Keywords in input files look like this: @foo@. See the docs for the
+ setKeys method to understand how to do the substitutions.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination file.]]></short-description>
+ <description><![CDATA[
+ Set the destination file.
+ ]]></description>
+ </attribute>
+ <attribute name="keys" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Keys.]]></short-description>
+ <description><![CDATA[
+ Sets the keys.
+Format string is like this:
+<p>
+name=value*name2=value
+<p>
+Names are case sensitive.
+<p>
+Use the setSep() method to change the * to something else
+if you need to use * as a name or value.
+ ]]></description>
+ </attribute>
+ <attribute name="sep" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Seperator between name=value arguments
+in setKeys().]]></short-description>
+ <description><![CDATA[
+ Sets the seperator between name=value arguments
+in setKeys(). By default it is "*".
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Source file.]]></short-description>
+ <description><![CDATA[
+ Set the source file.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="loadfile" category="utility"
+ classname="org.apache.tools.ant.taskdefs.LoadFile"
+ >
+
+ <short-description><![CDATA[Load a file into a property]]></short-description>
+ <description>
+ <![CDATA[Load a file into a property]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Encoding to use for input, defaults to the platform's default
+ encoding.]]></short-description>
+ <description><![CDATA[
+ Encoding to use for input, defaults to the platform's default
+ encoding. <p>
+
+ For a list of possible values see <a href="http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html">
+ http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html
+ </a>.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, fail on load error.]]></short-description>
+ <description><![CDATA[
+ If true, fail on load error.
+ ]]></description>
+ </attribute>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Property name to save to.]]></short-description>
+ <description><![CDATA[
+ Property name to save to.
+ ]]></description>
+ </attribute>
+ <attribute name="srcfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File to load.]]></short-description>
+ <description><![CDATA[
+ Sets the file to load.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="filterchain" type="org.apache.tools.ant.types.FilterChain"
+ briefType="FilterChain"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add the FilterChain element.]]></short-description>
+ <description>
+ <![CDATA[Add the FilterChain element.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="loadproperties" category="utility"
+ classname="org.apache.tools.ant.taskdefs.LoadProperties"
+ >
+
+ <short-description><![CDATA[Load a file's contents as Ant properties.]]></short-description>
+ <description>
+ <![CDATA[Load a file's contents as Ant properties.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="srcfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File to load.]]></short-description>
+ <description><![CDATA[
+ Sets the file to load.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="filterchain" type="org.apache.tools.ant.types.FilterChain"
+ briefType="FilterChain"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a FilterChain.]]></short-description>
+ <description>
+ <![CDATA[Adds a FilterChain.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="mail" category="network"
+ classname="org.apache.tools.ant.taskdefs.email.EmailTask"
+ >
+
+ <short-description><![CDATA[A task to send SMTP email.]]></short-description>
+ <description>
+ <![CDATA[A task to send SMTP email. This is a refactoring of the SendMail and
+ MimeMail tasks such that both are within a single task.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="bcclist" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Adds "bcc" address elements.]]></short-description>
+ <description><![CDATA[
+ Adds "bcc" address elements
+ ]]></description>
+ </attribute>
+ <attribute name="cclist" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Adds "cc" address elements.]]></short-description>
+ <description><![CDATA[
+ Adds "cc" address elements
+ ]]></description>
+ </attribute>
+ <attribute name="encoding" type="org.apache.tools.ant.taskdefs.email.EmailTask.Encoding"
+ briefType="&quot;auto&quot;, &quot;mime&quot;, &quot;uu&quot;, &quot;plain&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Allows the build writer to choose the preferred encoding method.]]></short-description>
+ <description><![CDATA[
+ Allows the build writer to choose the preferred encoding method
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates whether BuildExceptions should be passed back to the core.]]></short-description>
+ <description><![CDATA[
+ Indicates whether BuildExceptions should be passed back to the core
+ ]]></description>
+ </attribute>
+ <attribute name="files" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a list of files to be attached.]]></short-description>
+ <description><![CDATA[
+ Adds a list of files to be attached
+ ]]></description>
+ </attribute>
+ <attribute name="from" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Shorthand to set the from address element.]]></short-description>
+ <description><![CDATA[
+ Shorthand to set the from address element
+ ]]></description>
+ </attribute>
+ <attribute name="includefilenames" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets Includefilenames attribute.]]></short-description>
+ <description><![CDATA[
+ Sets Includefilenames attribute
+ ]]></description>
+ </attribute>
+ <attribute name="mailhost" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Host.]]></short-description>
+ <description><![CDATA[
+ Sets the host
+ ]]></description>
+ </attribute>
+ <attribute name="mailport" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Mail server port.]]></short-description>
+ <description><![CDATA[
+ Sets the mail server port
+ ]]></description>
+ </attribute>
+ <attribute name="message" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Shorthand method to set the message.]]></short-description>
+ <description><![CDATA[
+ Shorthand method to set the message
+ ]]></description>
+ </attribute>
+ <attribute name="messagefile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Shorthand method to set the message from a file.]]></short-description>
+ <description><![CDATA[
+ Shorthand method to set the message from a file
+ ]]></description>
+ </attribute>
+ <attribute name="messagemimetype" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Shorthand method to set type of the text message, text/plain by default
+ but text/html or text/xml is quite feasible.]]></short-description>
+ <description><![CDATA[
+ Shorthand method to set type of the text message, text/plain by default
+ but text/html or text/xml is quite feasible.
+ ]]></description>
+ </attribute>
+ <attribute name="subject" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Subject line of the email.]]></short-description>
+ <description><![CDATA[
+ Sets the subject line of the email
+ ]]></description>
+ </attribute>
+ <attribute name="tolist" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Adds "to" address elements.]]></short-description>
+ <description><![CDATA[
+ Adds "to" address elements
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="bcc" type="org.apache.tools.ant.taskdefs.email.EmailAddress"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds "bcc" address elements.]]></short-description>
+ <description>
+ <![CDATA[Adds "bcc" address elements]]>
+ </description>
+ </element>
+
+ <element name="cc" type="org.apache.tools.ant.taskdefs.email.EmailAddress"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds "cc" address element.]]></short-description>
+ <description>
+ <![CDATA[Adds "cc" address element]]>
+ </description>
+ </element>
+
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files (nested fileset attribute).]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files (nested fileset attribute).]]>
+ </description>
+ </element>
+
+ <element name="from" type="org.apache.tools.ant.taskdefs.email.EmailAddress"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a from address element.]]></short-description>
+ <description>
+ <![CDATA[Adds a from address element]]>
+ </description>
+ </element>
+
+ <element name="message" type="org.apache.tools.ant.taskdefs.email.Message"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a message elemnt.]]></short-description>
+ <description>
+ <![CDATA[Add a message elemnt]]>
+ </description>
+ </element>
+
+ <element name="to" type="org.apache.tools.ant.taskdefs.email.EmailAddress"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a to address element.]]></short-description>
+ <description>
+ <![CDATA[Adds a to address element]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="manifest" category="java"
+ classname="org.apache.tools.ant.taskdefs.ManifestTask"
+ >
+
+ <short-description><![CDATA[Creates a manifest file for inclusion in a JAR, Ant task wrapper around]]></short-description>
+ <description>
+ <![CDATA[Creates a manifest file for inclusion in a JAR, Ant task wrapper
+ around {@link Manifest Manifest}. This task can be used to write a
+ Manifest file, optionally replacing or updating an existing file.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the manifest file to create/update.]]></short-description>
+ <description><![CDATA[
+ The name of the manifest file to create/update.
+ Required if used as a task.
+ ]]></description>
+ </attribute>
+ <attribute name="mode" type="org.apache.tools.ant.taskdefs.ManifestTask.Mode"
+ briefType="&quot;update&quot;, &quot;replace&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Update policy: either "update" or "replace"; default is "replace".]]></short-description>
+ <description><![CDATA[
+ Update policy: either "update" or "replace"; default is "replace".
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="attribute" type="org.apache.tools.ant.taskdefs.Manifest.Attribute"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an attribute to the manifest - it is added to the main section.]]></short-description>
+ <description>
+ <![CDATA[Add an attribute to the manifest - it is added to the main section.]]>
+ </description>
+ </element>
+
+ <element name="section" type="org.apache.tools.ant.taskdefs.Manifest.Section"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a section to the manifest.]]></short-description>
+ <description>
+ <![CDATA[Add a section to the manifest]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="maudit" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.metamata.MAudit"
+ >
+
+ <short-description><![CDATA[Invokes the Metamata Audit/ Webgain Quality Analyzer on a set of Java files.]]></short-description>
+ <description>
+ <![CDATA[Invokes the Metamata Audit/ Webgain Quality Analyzer on a set of Java files.
+ <p>
+ <i>maudit</i> performs static analysis of the Java source code and byte code files to find and report
+ errors of style and potential problems related to performance, maintenance and robustness.
+ As a convenience, a stylesheet is given in <tt>etc</tt> directory, so that an HTML report
+ can be generated from the XML file.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="fix" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Automatically fix certain errors
+ (those marked as fixable in the manual);
+ optional, default=false.]]></short-description>
+ <description><![CDATA[
+ Automatically fix certain errors
+ (those marked as fixable in the manual);
+ optional, default=false
+ ]]></description>
+ </attribute>
+ <attribute name="list" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Creates listing file for each audited file; optional, default false.]]></short-description>
+ <description><![CDATA[
+ Creates listing file for each audited file; optional, default false.
+ When set, a .maudit file will be generated in the
+ same location as the source file.
+ ]]></description>
+ </attribute>
+ <attribute name="maxmemory" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Maximum memory for the JVM; optional.]]></short-description>
+ <description><![CDATA[
+ Set the maximum memory for the JVM; optional.
+ -mx or -Xmx depending on VM version
+ ]]></description>
+ </attribute>
+ <attribute name="metamatahome" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The home directory containing the Metamata distribution; required.]]></short-description>
+ <description><![CDATA[
+ The home directory containing the Metamata distribution; required
+ ]]></description>
+ </attribute>
+ <attribute name="tofile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The XML file to which the Audit result should be written to; required.]]></short-description>
+ <description><![CDATA[
+ The XML file to which the Audit result should be written to; required
+ ]]></description>
+ </attribute>
+ <attribute name="unused" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Finds declarations unused in search paths; optional, default false.]]></short-description>
+ <description><![CDATA[
+ Finds declarations unused in search paths; optional, default false.
+ It will look for unused global declarations
+ in the source code within a use domain specified by the
+ <tt>searchpath</tt> element.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[The java files or directory to audit.]]></short-description>
+ <description>
+ <![CDATA[The java files or directory to audit.
+ Whatever the filter is, only the files that end
+ with .java will be included for processing.
+ Note that the base directory used for the fileset
+ MUST be the root of the source files otherwise package names
+ deduced from the file path will be incorrect.]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Class path (also source path unless one explicitly set).]]></short-description>
+ <description>
+ <![CDATA[Sets the class path (also source path unless one explicitly set).
+ Overrides METAPATH/CLASSPATH environment variables.]]>
+ </description>
+ </element>
+
+ <element name="jvmarg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Additional optional parameters to pass to the JVM.]]></short-description>
+ <description>
+ <![CDATA[Additional optional parameters to pass to the JVM.
+ You can avoid using the <code>&lt;jvmarg&gt;</code> by adding these empty
+ entries to <code>metamata.properties</code> located at <code>${metamata.home}/bin</code>
+
+ <pre>metamata.classpath=
+ metamata.sourcepath=
+ metamata.baseclasspath=
+ </pre>]]>
+ </description>
+ </element>
+
+ <element name="rulespath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Classpath for additional audit rules
+ these must be placed before metamata.jar !!.]]></short-description>
+ <description>
+ <![CDATA[classpath for additional audit rules
+ these must be placed before metamata.jar !!]]>
+ </description>
+ </element>
+
+ <element name="searchpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Search path to use for unused global declarations;
+ required when <tt>unused</tt> is set.]]></short-description>
+ <description>
+ <![CDATA[search path to use for unused global declarations;
+ required when <tt>unused</tt> is set.]]>
+ </description>
+ </element>
+
+ <element name="sourcepath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Source path.]]></short-description>
+ <description>
+ <![CDATA[Sets the source path.
+ Overrides the SOURCEPATH environment variable.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="mimemail" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.net.MimeMail"
+ deprecated="true"
+ >
+
+ <short-description><![CDATA[A task to send SMTP email; Use <tt>mail</tt> instead]]></short-description>
+ <description>
+ <![CDATA[A task to send SMTP email; Use <tt>mail</tt> instead]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="bcclist" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Adds "bcc" address elements.]]></short-description>
+ <description><![CDATA[
+ Adds "bcc" address elements
+ ]]></description>
+ </attribute>
+ <attribute name="cclist" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Adds "cc" address elements.]]></short-description>
+ <description><![CDATA[
+ Adds "cc" address elements
+ ]]></description>
+ </attribute>
+ <attribute name="encoding" type="org.apache.tools.ant.taskdefs.email.EmailTask.Encoding"
+ briefType="&quot;auto&quot;, &quot;mime&quot;, &quot;uu&quot;, &quot;plain&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Allows the build writer to choose the preferred encoding method.]]></short-description>
+ <description><![CDATA[
+ Allows the build writer to choose the preferred encoding method
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates whether BuildExceptions should be passed back to the core.]]></short-description>
+ <description><![CDATA[
+ Indicates whether BuildExceptions should be passed back to the core
+ ]]></description>
+ </attribute>
+ <attribute name="files" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a list of files to be attached.]]></short-description>
+ <description><![CDATA[
+ Adds a list of files to be attached
+ ]]></description>
+ </attribute>
+ <attribute name="from" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Shorthand to set the from address element.]]></short-description>
+ <description><![CDATA[
+ Shorthand to set the from address element
+ ]]></description>
+ </attribute>
+ <attribute name="includefilenames" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets Includefilenames attribute.]]></short-description>
+ <description><![CDATA[
+ Sets Includefilenames attribute
+ ]]></description>
+ </attribute>
+ <attribute name="mailhost" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Host.]]></short-description>
+ <description><![CDATA[
+ Sets the host
+ ]]></description>
+ </attribute>
+ <attribute name="mailport" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Mail server port.]]></short-description>
+ <description><![CDATA[
+ Sets the mail server port
+ ]]></description>
+ </attribute>
+ <attribute name="message" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Shorthand method to set the message.]]></short-description>
+ <description><![CDATA[
+ Shorthand method to set the message
+ ]]></description>
+ </attribute>
+ <attribute name="messagefile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Shorthand method to set the message from a file.]]></short-description>
+ <description><![CDATA[
+ Shorthand method to set the message from a file
+ ]]></description>
+ </attribute>
+ <attribute name="messagemimetype" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Shorthand method to set type of the text message, text/plain by default
+ but text/html or text/xml is quite feasible.]]></short-description>
+ <description><![CDATA[
+ Shorthand method to set type of the text message, text/plain by default
+ but text/html or text/xml is quite feasible.
+ ]]></description>
+ </attribute>
+ <attribute name="subject" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Subject line of the email.]]></short-description>
+ <description><![CDATA[
+ Sets the subject line of the email
+ ]]></description>
+ </attribute>
+ <attribute name="tolist" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Adds "to" address elements.]]></short-description>
+ <description><![CDATA[
+ Adds "to" address elements
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="bcc" type="org.apache.tools.ant.taskdefs.email.EmailAddress"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds "bcc" address elements.]]></short-description>
+ <description>
+ <![CDATA[Adds "bcc" address elements]]>
+ </description>
+ </element>
+
+ <element name="cc" type="org.apache.tools.ant.taskdefs.email.EmailAddress"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds "cc" address element.]]></short-description>
+ <description>
+ <![CDATA[Adds "cc" address element]]>
+ </description>
+ </element>
+
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files (nested fileset attribute).]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files (nested fileset attribute).]]>
+ </description>
+ </element>
+
+ <element name="from" type="org.apache.tools.ant.taskdefs.email.EmailAddress"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a from address element.]]></short-description>
+ <description>
+ <![CDATA[Adds a from address element]]>
+ </description>
+ </element>
+
+ <element name="message" type="org.apache.tools.ant.taskdefs.email.Message"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a message elemnt.]]></short-description>
+ <description>
+ <![CDATA[Add a message elemnt]]>
+ </description>
+ </element>
+
+ <element name="to" type="org.apache.tools.ant.taskdefs.email.EmailAddress"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a to address element.]]></short-description>
+ <description>
+ <![CDATA[Adds a to address element]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="mkdir" category="filesystem"
+ classname="org.apache.tools.ant.taskdefs.Mkdir"
+ >
+
+ <short-description><![CDATA[Creates a given directory.]]></short-description>
+ <description>
+ <![CDATA[Creates a given directory.
+ Creates a directory and any non-existent parent directories, when
+ necessary]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory to create; required.]]></short-description>
+ <description><![CDATA[
+ the directory to create; required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="mmetrics" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.metamata.MMetrics"
+ >
+
+ <short-description><![CDATA[Computes the metrics of a set of Java files and write the results to an XML file.]]></short-description>
+ <description>
+ <![CDATA[Computes the metrics of a set of Java files and write the results to an XML
+ file. As a convenience, a stylesheet is given in <tt>etc</tt> directory,
+ so that an HTML report can be generated from the XML file.
+ <p>
+ You will not be able to use this task with the evaluation version since
+ as of Metamata 2.0, Metrics does not support command line :-(]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="granularity" type="org.apache.tools.ant.taskdefs.optional.metamata.MMetrics.GranularityAttribute"
+ briefType="&quot;compilation-units&quot;, &quot;files&quot;, &quot;methods&quot;, &quot;types&quot;, &quot;packages&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Granularity of the audit.]]></short-description>
+ <description><![CDATA[
+ set the granularity of the audit. Should be one of 'files', 'methods'
+ or 'types'.
+ ]]></description>
+ </attribute>
+ <attribute name="maxmemory" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Maximum memory for the JVM; optional.]]></short-description>
+ <description><![CDATA[
+ Set the maximum memory for the JVM; optional.
+ -mx or -Xmx depending on VM version
+ ]]></description>
+ </attribute>
+ <attribute name="metamatahome" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The home directory containing the Metamata distribution; required.]]></short-description>
+ <description><![CDATA[
+ The home directory containing the Metamata distribution; required
+ ]]></description>
+ </attribute>
+ <attribute name="tofile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Output XML file.]]></short-description>
+ <description><![CDATA[
+ Set the output XML file
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[The java files or directory to audit.]]></short-description>
+ <description>
+ <![CDATA[The java files or directory to audit.
+ Whatever the filter is, only the files that end
+ with .java will be included for processing.
+ Note that the base directory used for the fileset
+ MUST be the root of the source files otherwise package names
+ deduced from the file path will be incorrect.]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Class path (also source path unless one explicitly set).]]></short-description>
+ <description>
+ <![CDATA[Sets the class path (also source path unless one explicitly set).
+ Overrides METAPATH/CLASSPATH environment variables.]]>
+ </description>
+ </element>
+
+ <element name="jvmarg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Additional optional parameters to pass to the JVM.]]></short-description>
+ <description>
+ <![CDATA[Additional optional parameters to pass to the JVM.
+ You can avoid using the <code>&lt;jvmarg&gt;</code> by adding these empty
+ entries to <code>metamata.properties</code> located at <code>${metamata.home}/bin</code>
+
+ <pre>metamata.classpath=
+ metamata.sourcepath=
+ metamata.baseclasspath=
+ </pre>]]>
+ </description>
+ </element>
+
+ <element name="path" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[New path (directory) to measure metrics from.]]></short-description>
+ <description>
+ <![CDATA[Set a new path (directory) to measure metrics from.]]>
+ </description>
+ </element>
+
+ <element name="sourcepath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Source path.]]></short-description>
+ <description>
+ <![CDATA[Sets the source path.
+ Overrides the SOURCEPATH environment variable.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="move" category="filesystem"
+ classname="org.apache.tools.ant.taskdefs.Move"
+ >
+
+ <short-description><![CDATA[Moves a file or directory to a new file or directory.]]></short-description>
+ <description>
+ <![CDATA[Moves a file or directory to a new file or directory.
+ By default, the
+ destination file is overwritten if it already exists.
+ When <i>overwrite</i> is
+ turned off, then files are only moved if the source file is
+ newer than the destination file, or when the destination file does
+ not exist.
+
+ <p>Source files and directories are only deleted when the file or
+ directory has been copied to the destination successfully. Filtering
+ also works.</p>
+
+ <p>This implementation is based on Arnout Kuiper's initial design
+ document, the following mailing list discussions, and the
+ copyfile/copydir tasks.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Character encoding.]]></short-description>
+ <description><![CDATA[
+ Sets the character encoding
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If false, note errors to the output but keep going.]]></short-description>
+ <description><![CDATA[
+ If false, note errors to the output but keep going.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Single source file to copy.]]></short-description>
+ <description><![CDATA[
+ Sets a single source file to copy.
+ ]]></description>
+ </attribute>
+ <attribute name="filtering" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If true, enables filtering.]]></short-description>
+ <description><![CDATA[
+ If true, enables filtering.
+ ]]></description>
+ </attribute>
+ <attribute name="flatten" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[When copying directory trees, the files can be "flattened"
+ into a single directory.]]></short-description>
+ <description><![CDATA[
+ When copying directory trees, the files can be "flattened"
+ into a single directory. If there are multiple files with
+ the same name in the source directory tree, only the first
+ file will be copied into the "flattened" directory, unless
+ the forceoverwrite attribute is true.
+ ]]></description>
+ </attribute>
+ <attribute name="includeemptydirs" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Used to copy empty directories.]]></short-description>
+ <description><![CDATA[
+ Used to copy empty directories.
+ ]]></description>
+ </attribute>
+ <attribute name="overwrite" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Overwrite any existing destination file(s).]]></short-description>
+ <description><![CDATA[
+ Overwrite any existing destination file(s).
+ ]]></description>
+ </attribute>
+ <attribute name="preservelastmodified" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Give the copied files the same last modified time as the original files.]]></short-description>
+ <description><![CDATA[
+ Give the copied files the same last modified time as the original files.
+ ]]></description>
+ </attribute>
+ <attribute name="todir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory.]]></short-description>
+ <description><![CDATA[
+ Sets the destination directory.
+ ]]></description>
+ </attribute>
+ <attribute name="tofile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination file.]]></short-description>
+ <description><![CDATA[
+ Sets the destination file.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Used to force listing of all names of copied files.]]></short-description>
+ <description><![CDATA[
+ Used to force listing of all names of copied files.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a set of files to copy.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files to copy.]]>
+ </description>
+ </element>
+
+ <element name="filterchain" type="org.apache.tools.ant.types.FilterChain"
+ briefType="FilterChain"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a FilterChain.]]></short-description>
+ <description>
+ <![CDATA[Adds a FilterChain.]]>
+ </description>
+ </element>
+
+ <element name="filterset" type="org.apache.tools.ant.types.FilterSet"
+ briefType="Filterset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Adds a filterset.]]></short-description>
+ <description>
+ <![CDATA[Adds a filterset.]]>
+ </description>
+ </element>
+
+ <element name="mapper" type="org.apache.tools.ant.types.Mapper"
+ briefType="Mapper"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Defines the mapper to map source to destination files.]]></short-description>
+ <description>
+ <![CDATA[Defines the mapper to map source to destination files.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="mparse" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.metamata.MParse"
+ >
+
+ <short-description><![CDATA[Simple Metamata MParse task.]]></short-description>
+ <description>
+ <![CDATA[Simple Metamata MParse task.
+ Based on the original written by
+ <a href="mailto:thomas.haas@softwired-inc.com">Thomas Haas</a>.
+ This version was written for Metamata 2.0 available at
+ <a href="http://www.metamata.com">http://www.metamata.com</a>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="cleanup" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Remove the intermediate Sun JavaCC file
+ ; optional, default false.]]></short-description>
+ <description><![CDATA[
+ Remove the intermediate Sun JavaCC file
+ ; optional, default false.
+ ]]></description>
+ </attribute>
+ <attribute name="debugparser" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set parser debug mode; optional, default false.]]></short-description>
+ <description><![CDATA[
+ set parser debug mode; optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="debugscanner" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set scanner debug mode; optional, default false.]]></short-description>
+ <description><![CDATA[
+ set scanner debug mode; optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="maxmemory" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Maximum memory for the JVM; optional.]]></short-description>
+ <description><![CDATA[
+ Set the maximum memory for the JVM; optional.
+ -mx or -Xmx depending on VM version
+ ]]></description>
+ </attribute>
+ <attribute name="metamatahome" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The home directory containing the Metamata distribution; required.]]></short-description>
+ <description><![CDATA[
+ The home directory containing the Metamata distribution; required
+ ]]></description>
+ </attribute>
+ <attribute name="target" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The .jj file to process; required.]]></short-description>
+ <description><![CDATA[
+ The .jj file to process; required.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set verbose mode; optional, default false.]]></short-description>
+ <description><![CDATA[
+ set verbose mode; optional, default false
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create a classpath entry.]]></short-description>
+ <description>
+ <![CDATA[create a classpath entry]]>
+ </description>
+ </element>
+
+ <element name="jvmarg" type="org.apache.tools.ant.types.Commandline.Argument"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Additional optional parameters to pass to the JVM.]]></short-description>
+ <description>
+ <![CDATA[Additional optional parameters to pass to the JVM.]]>
+ </description>
+ </element>
+
+ <element name="sourcepath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Creates a sourcepath entry.]]></short-description>
+ <description>
+ <![CDATA[creates a sourcepath entry]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="native2ascii" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.Native2Ascii"
+ matchingTask="true">
+
+ <short-description><![CDATA[Converts files from native encodings to ASCII.]]></short-description>
+ <description>
+ <![CDATA[Converts files from native encodings to ASCII.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory to place converted files into.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory to place converted files into.
+ ]]></description>
+ </attribute>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Encoding to translate to/from.]]></short-description>
+ <description><![CDATA[
+ Set the encoding to translate to/from.
+ If unset, the default encoding for the JVM is used.
+ ]]></description>
+ </attribute>
+ <attribute name="ext" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Extension which converted files should have.]]></short-description>
+ <description><![CDATA[
+ Set the extension which converted files should have.
+ If unset, files will not be renamed.
+ ]]></description>
+ </attribute>
+ <attribute name="reverse" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag the conversion to run in the reverse sense,
+ that is Ascii to Native encoding.]]></short-description>
+ <description><![CDATA[
+ Flag the conversion to run in the reverse sense,
+ that is Ascii to Native encoding.
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Source directory in which to find files to convert.]]></short-description>
+ <description><![CDATA[
+ Set the source directory in which to find files to convert.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="mapper" type="org.apache.tools.ant.types.Mapper"
+ briefType="Mapper"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Defines the FileNameMapper to use (nested mapper element).]]></short-description>
+ <description>
+ <![CDATA[Defines the FileNameMapper to use (nested mapper element).]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="netrexxc" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.NetRexxC"
+ matchingTask="true">
+
+ <short-description><![CDATA[Compiles NetRexx source files.]]></short-description>
+ <description>
+ <![CDATA[Compiles NetRexx source files.
+ This task can take the following
+ arguments:
+ <ul>
+ <li>binary</li>
+ <li>classpath</li>
+ <li>comments</li>
+ <li>compile</li>
+ <li>console</li>
+ <li>crossref</li>
+ <li>decimal</li>
+ <li>destdir</li>
+ <li>diag</li>
+ <li>explicit</li>
+ <li>format</li>
+ <li>keep</li>
+ <li>logo</li>
+ <li>replace</li>
+ <li>savelog</li>
+ <li>srcdir</li>
+ <li>sourcedir</li>
+ <li>strictargs</li>
+ <li>strictassign</li>
+ <li>strictcase</li>
+ <li>strictimport</li>
+ <li>symbols</li>
+ <li>time</li>
+ <li>trace</li>
+ <li>utf8</li>
+ <li>verbose</li>
+ <li>suppressMethodArgumentNotUsed</li>
+ <li>suppressPrivatePropertyNotUsed</li>
+ <li>suppressVariableNotUsed</li>
+ <li>suppressExceptionNotSignalled</li>
+ <li>suppressDeprecation</li>
+ </ul>
+ Of these arguments, the <b>srcdir</b> argument is required.
+
+ <p>When this task executes, it will recursively scan the srcdir
+ looking for NetRexx source files to compile. This task makes its
+ compile decision based on timestamp.
+ <p>Before files are compiled they and any other file in the
+ srcdir will be copied to the destdir allowing support files to be
+ located properly in the classpath. The reason for copying the source files
+ before the compile is that NetRexxC has only two destinations for classfiles:
+ <ol>
+ <li>The current directory, and,</li>
+ <li>The directory the source is in (see sourcedir option)
+ </ol>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="binary" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set whether literals are treated as binary, rather than NetRexx types.]]></short-description>
+ <description><![CDATA[
+ Set whether literals are treated as binary, rather than NetRexx types
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath used for NetRexx compilation.]]></short-description>
+ <description><![CDATA[
+ Set the classpath used for NetRexx compilation
+ ]]></description>
+ </attribute>
+ <attribute name="comments" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set whether comments are passed through to the generated java source.]]></short-description>
+ <description><![CDATA[
+ Set whether comments are passed through to the generated java source.
+ Valid true values are "on" or "true". Anything else sets the flag to
+ false. The default value is false
+ ]]></description>
+ </attribute>
+ <attribute name="compact" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set whether error messages come out in compact or verbose format.]]></short-description>
+ <description><![CDATA[
+ Set whether error messages come out in compact or verbose format. Valid
+ true values are "on" or "true". Anything else sets the flag to false.
+ The default value is false
+ ]]></description>
+ </attribute>
+ <attribute name="compile" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set whether the NetRexx compiler should compile the generated java code
+ Valid true values are "on" or "true".]]></short-description>
+ <description><![CDATA[
+ Set whether the NetRexx compiler should compile the generated java code
+ Valid true values are "on" or "true". Anything else sets the flag to
+ false. The default value is true. Setting this flag to false, will
+ automatically set the keep flag to true.
+ ]]></description>
+ </attribute>
+ <attribute name="console" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set whether or not messages should be displayed on the 'console' Valid
+ true values are "on" or "true".]]></short-description>
+ <description><![CDATA[
+ Set whether or not messages should be displayed on the 'console' Valid
+ true values are "on" or "true". Anything else sets the flag to false.
+ The default value is true.
+ ]]></description>
+ </attribute>
+ <attribute name="crossref" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether variable cross references are generated.]]></short-description>
+ <description><![CDATA[
+ Whether variable cross references are generated
+ ]]></description>
+ </attribute>
+ <attribute name="decimal" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set whether decimal arithmetic should be used for the netrexx code.]]></short-description>
+ <description><![CDATA[
+ Set whether decimal arithmetic should be used for the netrexx code.
+ Binary arithmetic is used when this flag is turned off. Valid true
+ values are "on" or "true". Anything else sets the flag to false. The
+ default value is true.
+ ]]></description>
+ </attribute>
+ <attribute name="destdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory into which the NetRexx source files
+ should be copied and then compiled.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory into which the NetRexx source files
+ should be copied and then compiled.
+ ]]></description>
+ </attribute>
+ <attribute name="diag" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether diagnostic information about the compile is generated.]]></short-description>
+ <description><![CDATA[
+ Whether diagnostic information about the compile is generated
+ ]]></description>
+ </attribute>
+ <attribute name="explicit" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether variables must be declared explicitly before use.]]></short-description>
+ <description><![CDATA[
+ Sets whether variables must be declared explicitly before use. Valid
+ true values are "on" or "true". Anything else sets the flag to false.
+ The default value is false.
+ ]]></description>
+ </attribute>
+ <attribute name="format" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the generated java code is formatted nicely or left to match
+ NetRexx line numbers for call stack debugging.]]></short-description>
+ <description><![CDATA[
+ Whether the generated java code is formatted nicely or left to match
+ NetRexx line numbers for call stack debugging
+ ]]></description>
+ </attribute>
+ <attribute name="java" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the generated java code is produced Valid true values are "on"
+ or "true".]]></short-description>
+ <description><![CDATA[
+ Whether the generated java code is produced Valid true values are "on"
+ or "true". Anything else sets the flag to false. The default value is
+ false.
+ ]]></description>
+ </attribute>
+ <attribute name="keep" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether the generated java source file should be kept after
+ compilation.]]></short-description>
+ <description><![CDATA[
+ Sets whether the generated java source file should be kept after
+ compilation. The generated files will have an extension of .java.keep,
+ <b>not</b> .java Valid true values are "on" or "true". Anything else
+ sets the flag to false. The default value is false.
+ ]]></description>
+ </attribute>
+ <attribute name="logo" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the compiler text logo is displayed when compiling.]]></short-description>
+ <description><![CDATA[
+ Whether the compiler text logo is displayed when compiling
+ ]]></description>
+ </attribute>
+ <attribute name="replace" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the generated .java file should be replaced when compiling
+ Valid true values are "on" or "true".]]></short-description>
+ <description><![CDATA[
+ Whether the generated .java file should be replaced when compiling
+ Valid true values are "on" or "true". Anything else sets the flag to
+ false. The default value is false.
+ ]]></description>
+ </attribute>
+ <attribute name="savelog" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether the compiler messages will be written to NetRexxC.log as
+ well as to the console Valid true values are "on" or "true".]]></short-description>
+ <description><![CDATA[
+ Sets whether the compiler messages will be written to NetRexxC.log as
+ well as to the console Valid true values are "on" or "true". Anything
+ else sets the flag to false. The default value is false.
+ ]]></description>
+ </attribute>
+ <attribute name="sourcedir" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Tells the NetRexx compiler to store the class files in the same
+ directory as the source files.]]></short-description>
+ <description><![CDATA[
+ Tells the NetRexx compiler to store the class files in the same
+ directory as the source files. The alternative is the working directory
+ Valid true values are "on" or "true". Anything else sets the flag to
+ false. The default value is true.
+ ]]></description>
+ </attribute>
+ <attribute name="srcdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Source dir to find the source Java files.]]></short-description>
+ <description><![CDATA[
+ Set the source dir to find the source Java files.
+ ]]></description>
+ </attribute>
+ <attribute name="strictargs" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Tells the NetRexx compiler that method calls always need parentheses,
+ even if no arguments are needed, e.g.]]></short-description>
+ <description><![CDATA[
+ Tells the NetRexx compiler that method calls always need parentheses,
+ even if no arguments are needed, e.g. <code>aStringVar.getBytes</code>
+ vs. <code>aStringVar.getBytes()</code> Valid true values are "on" or
+ "true". Anything else sets the flag to false. The default value is
+ false.
+ ]]></description>
+ </attribute>
+ <attribute name="strictassign" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Tells the NetRexx compile that assignments must match exactly on type.]]></short-description>
+ <description><![CDATA[
+ Tells the NetRexx compile that assignments must match exactly on type
+ ]]></description>
+ </attribute>
+ <attribute name="strictcase" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies whether the NetRexx compiler should be case sensitive or not.]]></short-description>
+ <description><![CDATA[
+ Specifies whether the NetRexx compiler should be case sensitive or not
+ ]]></description>
+ </attribute>
+ <attribute name="strictimport" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether classes need to be imported explicitly using an <code>import</code>
+ statement.]]></short-description>
+ <description><![CDATA[
+ Sets whether classes need to be imported explicitly using an <code>import</code>
+ statement. By default the NetRexx compiler will import certain packages
+ automatically Valid true values are "on" or "true". Anything else sets
+ the flag to false. The default value is false.
+ ]]></description>
+ </attribute>
+ <attribute name="strictprops" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether local properties need to be qualified explicitly using
+ <code>this</code> Valid true values are "on" or "true".]]></short-description>
+ <description><![CDATA[
+ Sets whether local properties need to be qualified explicitly using
+ <code>this</code> Valid true values are "on" or "true". Anything else
+ sets the flag to false. The default value is false.
+ ]]></description>
+ </attribute>
+ <attribute name="strictsignal" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the compiler should force catching of exceptions by explicitly
+ named types.]]></short-description>
+ <description><![CDATA[
+ Whether the compiler should force catching of exceptions by explicitly
+ named types
+ ]]></description>
+ </attribute>
+ <attribute name="suppressdeprecation" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Tells whether we should filter out any deprecation-messages
+ of the compiler out.]]></short-description>
+ <description><![CDATA[
+ Tells whether we should filter out any deprecation-messages
+ of the compiler out.
+ ]]></description>
+ </attribute>
+ <attribute name="suppressexceptionnotsignalled" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the task should suppress the "FooException is in SIGNALS list
+ but is not signalled within the method", which is sometimes rather
+ useless.]]></short-description>
+ <description><![CDATA[
+ Whether the task should suppress the "FooException is in SIGNALS list
+ but is not signalled within the method", which is sometimes rather
+ useless. The warning is logged as verbose message, though.
+ ]]></description>
+ </attribute>
+ <attribute name="suppressmethodargumentnotused" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the task should suppress the "Method argument is not used" in
+ strictargs-Mode, which can not be suppressed by the compiler itself.]]></short-description>
+ <description><![CDATA[
+ Whether the task should suppress the "Method argument is not used" in
+ strictargs-Mode, which can not be suppressed by the compiler itself.
+ The warning is logged as verbose message, though.
+ ]]></description>
+ </attribute>
+ <attribute name="suppressprivatepropertynotused" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the task should suppress the "Private property is defined but
+ not used" in strictargs-Mode, which can be quite annoying while
+ developing.]]></short-description>
+ <description><![CDATA[
+ Whether the task should suppress the "Private property is defined but
+ not used" in strictargs-Mode, which can be quite annoying while
+ developing. The warning is logged as verbose message, though.
+ ]]></description>
+ </attribute>
+ <attribute name="suppressvariablenotused" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether the task should suppress the "Variable is set but not used" in
+ strictargs-Mode.]]></short-description>
+ <description><![CDATA[
+ Whether the task should suppress the "Variable is set but not used" in
+ strictargs-Mode. Be careful with this one! The warning is logged as
+ verbose message, though.
+ ]]></description>
+ </attribute>
+ <attribute name="symbols" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether debug symbols should be generated into the class file
+ Valid true values are "on" or "true".]]></short-description>
+ <description><![CDATA[
+ Sets whether debug symbols should be generated into the class file
+ Valid true values are "on" or "true". Anything else sets the flag to
+ false. The default value is false.
+ ]]></description>
+ </attribute>
+ <attribute name="time" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Asks the NetRexx compiler to print compilation times to the console
+ Valid true values are "on" or "true".]]></short-description>
+ <description><![CDATA[
+ Asks the NetRexx compiler to print compilation times to the console
+ Valid true values are "on" or "true". Anything else sets the flag to
+ false. The default value is false.
+ ]]></description>
+ </attribute>
+ <attribute name="trace" type="org.apache.tools.ant.taskdefs.optional.NetRexxC.TraceAttr"
+ briefType="&quot;trace&quot;, &quot;trace1&quot;, &quot;trace2&quot;, &quot;notrace&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ <attribute name="utf8" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Tells the NetRexx compiler that the source is in UTF8 Valid true values
+ are "on" or "true".]]></short-description>
+ <description><![CDATA[
+ Tells the NetRexx compiler that the source is in UTF8 Valid true values
+ are "on" or "true". Anything else sets the flag to false. The default
+ value is false.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="org.apache.tools.ant.taskdefs.optional.NetRexxC.VerboseAttr"
+ briefType="&quot;verbose&quot;, &quot;verbose0&quot;, &quot;verbose1&quot;, &quot;verbose2&quot;, &quot;verbose3&quot;, &quot;verbose4&quot;, &quot;verbose5&quot;, &quot;noverbose&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Whether lots of warnings and error messages should be generated.]]></short-description>
+ <description><![CDATA[
+ Whether lots of warnings and error messages should be generated
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="p4add" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Add"
+ >
+
+ <short-description><![CDATA[Adds specified files to Perforce.]]></short-description>
+ <description>
+ <![CDATA[Adds specified files to Perforce.
+
+ <b>Example Usage:</b>
+ <table border="1">
+ <th>Function</th><th>Command</th>
+ <tr><td>Add files using P4USER, P4PORT and P4CLIENT settings specified</td><td>&lt;P4add <br>P4view="//projects/foo/main/source/..." <br>P4User="fbloggs" <br>P4Port="km01:1666" <br>P4Client="fbloggsclient"&gt;<br>&lt;fileset basedir="dir" includes="**&#47;*.java"&gt;<br>&lt;/p4add&gt;</td></tr>
+ <tr><td>Add files using P4USER, P4PORT and P4CLIENT settings defined in environment</td><td>&lt;P4add P4view="//projects/foo/main/source/..." /&gt;<br>&lt;fileset basedir="dir" includes="**&#47;*.java"&gt;<br>&lt;/p4add&gt;</td></tr>
+ <tr><td>Specify the length of command line arguments to pass to each invocation of p4</td><td>&lt;p4add Commandlength="450"&gt;</td></tr>
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="changelist" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[If specified the open files are associated with the
+ specified pending changelist number; otherwise the open files are
+ associated with the default changelist.]]></short-description>
+ <description><![CDATA[
+ If specified the open files are associated with the
+ specified pending changelist number; otherwise the open files are
+ associated with the default changelist.
+ ]]></description>
+ </attribute>
+ <attribute name="client" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 client spec to use;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 client spec to use;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="cmdopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set extra command options; only used on some
+ of the Perforce tasks.]]></short-description>
+ <description><![CDATA[
+ Set extra command options; only used on some
+ of the Perforce tasks.
+ ]]></description>
+ </attribute>
+ <attribute name="commandlength" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Positive integer specifying the maximum length
+ of the commandline when calling Perforce to add the files.]]></short-description>
+ <description><![CDATA[
+ positive integer specifying the maximum length
+ of the commandline when calling Perforce to add the files.
+ Defaults to 450, higher values mean faster execution,
+ but also possible failures.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command.]]></short-description>
+ <description><![CDATA[
+ whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4d server and port to connect to;
+ optional, default "perforce:1666".]]></short-description>
+ <description><![CDATA[
+ The p4d server and port to connect to;
+ optional, default "perforce:1666"
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 username;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 username;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="view" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The client, branch or label view to operate upon;
+ optional default "//...".]]></short-description>
+ <description><![CDATA[
+ The client, branch or label view to operate upon;
+ optional default "//..."
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Files to add.]]></short-description>
+ <description>
+ <![CDATA[files to add]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="p4change" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Change"
+ >
+
+ <short-description><![CDATA[Requests a new changelist from the Perforce server.]]></short-description>
+ <description>
+ <![CDATA[Requests a new changelist from the Perforce server.
+ P4Change creates a new changelist in perforce. P4Change sets the property
+ ${p4.change} with the new changelist number. This should then be passed into
+ p4edit and p4submit.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="client" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 client spec to use;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 client spec to use;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="cmdopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set extra command options; only used on some
+ of the Perforce tasks.]]></short-description>
+ <description><![CDATA[
+ Set extra command options; only used on some
+ of the Perforce tasks.
+ ]]></description>
+ </attribute>
+ <attribute name="description" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Description for ChangeList;optional.]]></short-description>
+ <description><![CDATA[
+ Description for ChangeList;optional.
+ If none is specified, it will default to "AutoSubmit By Ant"
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command.]]></short-description>
+ <description><![CDATA[
+ whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4d server and port to connect to;
+ optional, default "perforce:1666".]]></short-description>
+ <description><![CDATA[
+ The p4d server and port to connect to;
+ optional, default "perforce:1666"
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 username;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 username;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="view" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The client, branch or label view to operate upon;
+ optional default "//...".]]></short-description>
+ <description><![CDATA[
+ The client, branch or label view to operate upon;
+ optional default "//..."
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="p4counter" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Counter"
+ >
+
+ <short-description><![CDATA[Obtains or sets the value of a counter.]]></short-description>
+ <description>
+ <![CDATA[Obtains or sets the value of a counter.
+
+ <p> When used in its base form
+ (where only the counter name is provided), the counter value will be
+ printed to the output stream. When the value is provided, the counter
+ will be set to the value provided. When a property name is provided,
+ the property will be filled with the value of the counter. You may
+ not specify to both get and set the value of the counter in the same
+ Task.
+ </p>
+ <P>
+ The user performing this task must have Perforce &quot;review&quot; permissions
+ as defined by Perforce protections in order for this task to succeed.
+</P>
+
+ Example Usage:<br>
+ &lt;p4counter name="${p4.counter}" property=${p4.change}"/&gt;]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="client" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 client spec to use;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 client spec to use;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="cmdopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set extra command options; only used on some
+ of the Perforce tasks.]]></short-description>
+ <description><![CDATA[
+ Set extra command options; only used on some
+ of the Perforce tasks.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command.]]></short-description>
+ <description><![CDATA[
+ whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command
+ ]]></description>
+ </attribute>
+ <attribute name="name" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the counter; required.]]></short-description>
+ <description><![CDATA[
+ The name of the counter; required
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4d server and port to connect to;
+ optional, default "perforce:1666".]]></short-description>
+ <description><![CDATA[
+ The p4d server and port to connect to;
+ optional, default "perforce:1666"
+ ]]></description>
+ </attribute>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[A property to be set with the value of the counter.]]></short-description>
+ <description><![CDATA[
+ A property to be set with the value of the counter
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 username;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 username;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="value" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[The new value for the counter; optional.]]></short-description>
+ <description><![CDATA[
+ The new value for the counter; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="view" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The client, branch or label view to operate upon;
+ optional default "//...".]]></short-description>
+ <description><![CDATA[
+ The client, branch or label view to operate upon;
+ optional default "//..."
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="p4delete" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Delete"
+ >
+
+ <short-description><![CDATA[Checkout files for deletion.]]></short-description>
+ <description>
+ <![CDATA[Checkout files for deletion.
+
+ Example Usage:<br>
+ &lt;p4delete change="${p4.change}" view="//depot/project/foo.txt" /&gt;<br>
+
+ Simple re-write of P4Edit changing 'edit' to 'delete'.<br>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="change" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[An existing changelist number for the deletion; optional
+ but strongly recommended.]]></short-description>
+ <description><![CDATA[
+ An existing changelist number for the deletion; optional
+ but strongly recommended.
+ ]]></description>
+ </attribute>
+ <attribute name="client" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 client spec to use;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 client spec to use;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="cmdopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set extra command options; only used on some
+ of the Perforce tasks.]]></short-description>
+ <description><![CDATA[
+ Set extra command options; only used on some
+ of the Perforce tasks.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command.]]></short-description>
+ <description><![CDATA[
+ whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4d server and port to connect to;
+ optional, default "perforce:1666".]]></short-description>
+ <description><![CDATA[
+ The p4d server and port to connect to;
+ optional, default "perforce:1666"
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 username;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 username;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="view" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The client, branch or label view to operate upon;
+ optional default "//...".]]></short-description>
+ <description><![CDATA[
+ The client, branch or label view to operate upon;
+ optional default "//..."
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="p4edit" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Edit"
+ >
+
+ <short-description><![CDATA[Open file(s) for edit.]]></short-description>
+ <description>
+ <![CDATA[Open file(s) for edit.
+ P4Change should be used to obtain a new changelist for P4Edit as,
+ although P4Edit can open files to the default change,
+ P4Submit cannot yet submit to it.
+ Example Usage:<br>
+ &lt;p4edit change="${p4.change}" view="//depot/project/foo.txt" /&gt;]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="change" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[An existing changelist number to assign files to; optional
+ but strongly recommended.]]></short-description>
+ <description><![CDATA[
+ An existing changelist number to assign files to; optional
+ but strongly recommended.
+ ]]></description>
+ </attribute>
+ <attribute name="client" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 client spec to use;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 client spec to use;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="cmdopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set extra command options; only used on some
+ of the Perforce tasks.]]></short-description>
+ <description><![CDATA[
+ Set extra command options; only used on some
+ of the Perforce tasks.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command.]]></short-description>
+ <description><![CDATA[
+ whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4d server and port to connect to;
+ optional, default "perforce:1666".]]></short-description>
+ <description><![CDATA[
+ The p4d server and port to connect to;
+ optional, default "perforce:1666"
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 username;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 username;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="view" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The client, branch or label view to operate upon;
+ optional default "//...".]]></short-description>
+ <description><![CDATA[
+ The client, branch or label view to operate upon;
+ optional default "//..."
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="p4have" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Have"
+ >
+
+ <short-description><![CDATA[Lists Perforce files currently on client.]]></short-description>
+ <description>
+ <![CDATA[Lists Perforce files currently on client.
+
+ P4Have simply dumps the current file version info into
+ the Ant log (or stdout).]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="client" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 client spec to use;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 client spec to use;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="cmdopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set extra command options; only used on some
+ of the Perforce tasks.]]></short-description>
+ <description><![CDATA[
+ Set extra command options; only used on some
+ of the Perforce tasks.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command.]]></short-description>
+ <description><![CDATA[
+ whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4d server and port to connect to;
+ optional, default "perforce:1666".]]></short-description>
+ <description><![CDATA[
+ The p4d server and port to connect to;
+ optional, default "perforce:1666"
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 username;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 username;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="view" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The client, branch or label view to operate upon;
+ optional default "//...".]]></short-description>
+ <description><![CDATA[
+ The client, branch or label view to operate upon;
+ optional default "//..."
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="p4label" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Label"
+ >
+
+ <short-description><![CDATA[Creates a new Perforce label and set contents to reflect current client file revisions.]]></short-description>
+ <description>
+ <![CDATA[Creates a new Perforce label and set contents to reflect current
+ client file revisions.
+
+ Label name defaults to AntLabel if none set.
+
+ Example Usage:
+ <pre>
+ &lt;P4Label name="MyLabel-${TSTAMP}-${DSTAMP}" desc="Auto Build Label" /&gt;
+ </pre>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="client" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 client spec to use;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 client spec to use;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="cmdopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set extra command options; only used on some
+ of the Perforce tasks.]]></short-description>
+ <description><![CDATA[
+ Set extra command options; only used on some
+ of the Perforce tasks.
+ ]]></description>
+ </attribute>
+ <attribute name="desc" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Label Description; optional.]]></short-description>
+ <description><![CDATA[
+ Label Description; optional
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command.]]></short-description>
+ <description><![CDATA[
+ whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command
+ ]]></description>
+ </attribute>
+ <attribute name="lock" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[When set to "locked", Perforce will lock the label once created; optional.]]></short-description>
+ <description><![CDATA[
+ when set to "locked", Perforce will lock the label once created; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="name" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the label; optional, default "AntLabel".]]></short-description>
+ <description><![CDATA[
+ The name of the label; optional, default "AntLabel"
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4d server and port to connect to;
+ optional, default "perforce:1666".]]></short-description>
+ <description><![CDATA[
+ The p4d server and port to connect to;
+ optional, default "perforce:1666"
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 username;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 username;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="view" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The client, branch or label view to operate upon;
+ optional default "//...".]]></short-description>
+ <description><![CDATA[
+ The client, branch or label view to operate upon;
+ optional default "//..."
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="p4reopen" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Reopen"
+ >
+
+ <short-description><![CDATA[No Description.]]></short-description>
+ <description>
+ <![CDATA[]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="client" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 client spec to use;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 client spec to use;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="cmdopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set extra command options; only used on some
+ of the Perforce tasks.]]></short-description>
+ <description><![CDATA[
+ Set extra command options; only used on some
+ of the Perforce tasks.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command.]]></short-description>
+ <description><![CDATA[
+ whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4d server and port to connect to;
+ optional, default "perforce:1666".]]></short-description>
+ <description><![CDATA[
+ The p4d server and port to connect to;
+ optional, default "perforce:1666"
+ ]]></description>
+ </attribute>
+ <attribute name="tochange" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The changelist to move files to; required.]]></short-description>
+ <description><![CDATA[
+ The changelist to move files to; required.
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 username;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 username;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="view" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The client, branch or label view to operate upon;
+ optional default "//...".]]></short-description>
+ <description><![CDATA[
+ The client, branch or label view to operate upon;
+ optional default "//..."
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="p4revert" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Revert"
+ >
+
+ <short-description><![CDATA[Revert Perforce open files or files in a changelist]]></short-description>
+ <description>
+ <![CDATA[Revert Perforce open files or files in a changelist]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="change" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The changelist to revert; optional.]]></short-description>
+ <description><![CDATA[
+ The changelist to revert; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="client" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 client spec to use;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 client spec to use;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="cmdopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set extra command options; only used on some
+ of the Perforce tasks.]]></short-description>
+ <description><![CDATA[
+ Set extra command options; only used on some
+ of the Perforce tasks.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command.]]></short-description>
+ <description><![CDATA[
+ whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4d server and port to connect to;
+ optional, default "perforce:1666".]]></short-description>
+ <description><![CDATA[
+ The p4d server and port to connect to;
+ optional, default "perforce:1666"
+ ]]></description>
+ </attribute>
+ <attribute name="revertonlyunchanged" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to revert only unchanged files (p4 revert -a); optional, default false.]]></short-description>
+ <description><![CDATA[
+ flag to revert only unchanged files (p4 revert -a); optional, default false.
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 username;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 username;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="view" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The client, branch or label view to operate upon;
+ optional default "//...".]]></short-description>
+ <description><![CDATA[
+ The client, branch or label view to operate upon;
+ optional default "//..."
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="p4submit" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Submit"
+ >
+
+ <short-description><![CDATA[Submits a numbered changelist to Perforce.]]></short-description>
+ <description>
+ <![CDATA[Submits a numbered changelist to Perforce.
+
+ <B>Note:</B> P4Submit cannot (yet) submit the default changelist.
+ This shouldn't be a problem with the ANT task as the usual flow is
+ P4Change to create a new numbered change followed by P4Edit then P4Submit.
+
+ Example Usage:-<br>
+ &lt;p4submit change="${p4.change}" /&gt;]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="change" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The changelist number to submit; required.]]></short-description>
+ <description><![CDATA[
+ The changelist number to submit; required.
+ ]]></description>
+ </attribute>
+ <attribute name="client" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 client spec to use;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 client spec to use;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="cmdopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set extra command options; only used on some
+ of the Perforce tasks.]]></short-description>
+ <description><![CDATA[
+ Set extra command options; only used on some
+ of the Perforce tasks.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command.]]></short-description>
+ <description><![CDATA[
+ whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4d server and port to connect to;
+ optional, default "perforce:1666".]]></short-description>
+ <description><![CDATA[
+ The p4d server and port to connect to;
+ optional, default "perforce:1666"
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 username;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 username;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="view" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The client, branch or label view to operate upon;
+ optional default "//...".]]></short-description>
+ <description><![CDATA[
+ The client, branch or label view to operate upon;
+ optional default "//..."
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="p4sync" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Sync"
+ >
+
+ <short-description><![CDATA[Synchronize client space to a Perforce depot view.]]></short-description>
+ <description>
+ <![CDATA[Synchronize client space to a Perforce depot view.
+
+ The API allows additional functionality of the "p4 sync" command
+ (such as "p4 sync -f //...#have" or other exotic invocations).</P>
+
+ <b>Example Usage:</b>
+ <table border="1">
+ <th>Function</th><th>Command</th>
+ <tr><td>Sync to head using P4USER, P4PORT and P4CLIENT settings specified</td><td>&lt;P4Sync <br>P4view="//projects/foo/main/source/..." <br>P4User="fbloggs" <br>P4Port="km01:1666" <br>P4Client="fbloggsclient" /&gt;</td></tr>
+ <tr><td>Sync to head using P4USER, P4PORT and P4CLIENT settings defined in environment</td><td>&lt;P4Sync P4view="//projects/foo/main/source/..." /&gt;</td></tr>
+ <tr><td>Force a re-sync to head, refreshing all files</td><td>&lt;P4Sync force="yes" P4view="//projects/foo/main/source/..." /&gt;</td></tr>
+ <tr><td>Sync to a label</td><td>&lt;P4Sync label="myPerforceLabel" /&gt;</td></tr>
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="client" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 client spec to use;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 client spec to use;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="cmdopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set extra command options; only used on some
+ of the Perforce tasks.]]></short-description>
+ <description><![CDATA[
+ Set extra command options; only used on some
+ of the Perforce tasks.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command.]]></short-description>
+ <description><![CDATA[
+ whether to stop the build (true, default)
+ or keep going if an error is returned from the p4 command
+ ]]></description>
+ </attribute>
+ <attribute name="force" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Force a refresh of files, if this attribute is set; false by default.]]></short-description>
+ <description><![CDATA[
+ force a refresh of files, if this attribute is set; false by default.
+ ]]></description>
+ </attribute>
+ <attribute name="label" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Label to sync client to; optional.]]></short-description>
+ <description><![CDATA[
+ Label to sync client to; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4d server and port to connect to;
+ optional, default "perforce:1666".]]></short-description>
+ <description><![CDATA[
+ The p4d server and port to connect to;
+ optional, default "perforce:1666"
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The p4 username;
+ optional, defaults to the current user.]]></short-description>
+ <description><![CDATA[
+ The p4 username;
+ optional, defaults to the current user
+ ]]></description>
+ </attribute>
+ <attribute name="view" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The client, branch or label view to operate upon;
+ optional default "//...".]]></short-description>
+ <description><![CDATA[
+ The client, branch or label view to operate upon;
+ optional default "//..."
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="parallel" category="control"
+ classname="org.apache.tools.ant.taskdefs.Parallel"
+ >
+
+ <short-description><![CDATA[Executes the contained tasks in separate threads, continuing once all are completed.]]></short-description>
+ <description>
+ <![CDATA[Executes the contained tasks in separate threads, continuing
+ once all are completed.
+ <p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="patch" category="utility"
+ classname="org.apache.tools.ant.taskdefs.Patch"
+ >
+
+ <short-description><![CDATA[Patches a file by applying a 'diff' file to it; requires "patch" to be on the execution path.]]></short-description>
+ <description>
+ <![CDATA[Patches a file by applying a 'diff' file to it; requires "patch" to be
+ on the execution path.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="backups" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to create backups; optional, default=false.]]></short-description>
+ <description><![CDATA[
+ flag to create backups; optional, default=false
+ ]]></description>
+ </attribute>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory to run the patch command in, defaults to the
+ project's base directory.]]></short-description>
+ <description><![CDATA[
+ The directory to run the patch command in, defaults to the
+ project's base directory.
+ ]]></description>
+ </attribute>
+ <attribute name="ignorewhitespace" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to ignore whitespace differences; default=false.]]></short-description>
+ <description><![CDATA[
+ flag to ignore whitespace differences; default=false
+ ]]></description>
+ </attribute>
+ <attribute name="originalfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file to patch; optional if it can be inferred from
+ the diff file.]]></short-description>
+ <description><![CDATA[
+ The file to patch; optional if it can be inferred from
+ the diff file
+ ]]></description>
+ </attribute>
+ <attribute name="patchfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file containing the diff output; required.]]></short-description>
+ <description><![CDATA[
+ The file containing the diff output; required.
+ ]]></description>
+ </attribute>
+ <attribute name="quiet" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Work silently unless an error occurs; optional, default=false.]]></short-description>
+ <description><![CDATA[
+ Work silently unless an error occurs; optional, default=false
+ ]]></description>
+ </attribute>
+ <attribute name="reverse" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Assume patch was created with old and new files swapped; optional,
+ default=false.]]></short-description>
+ <description><![CDATA[
+ Assume patch was created with old and new files swapped; optional,
+ default=false
+ ]]></description>
+ </attribute>
+ <attribute name="strip" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Strip the smallest prefix containing <i>num</i> leading slashes
+ from filenames.]]></short-description>
+ <description><![CDATA[
+ Strip the smallest prefix containing <i>num</i> leading slashes
+ from filenames.
+
+ <p>patch's <i>-p</i> option.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="pathconvert" category="utility"
+ classname="org.apache.tools.ant.taskdefs.PathConvert"
+ >
+
+ <short-description><![CDATA[Converts path and classpath information to a specific target OS format.]]></short-description>
+ <description>
+ <![CDATA[Converts path and classpath information to a specific target OS
+ format. The resulting formatted path is placed into the specified property.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dirsep" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Default directory separator string;
+ defaults to current JVM.]]></short-description>
+ <description><![CDATA[
+ Set the default directory separator string;
+ defaults to current JVM {@link java.io.File#separator File.separator}
+ ]]></description>
+ </attribute>
+ <attribute name="pathsep" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Default path separator string;
+ defaults to current JVM.]]></short-description>
+ <description><![CDATA[
+ Set the default path separator string;
+ defaults to current JVM
+ {@link java.io.File#pathSeparator File.pathSeparator}
+ ]]></description>
+ </attribute>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The property into which the converted path will be placed.]]></short-description>
+ <description><![CDATA[
+ The property into which the converted path will be placed.
+ ]]></description>
+ </attribute>
+ <attribute name="refid" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds a reference to a Path, FileSet, DirSet, or FileList defined
+ elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds a reference to a Path, FileSet, DirSet, or FileList defined
+ elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="setonempty" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set setonempty
+
+ If false, don't set the new property if the result is the empty string.]]></short-description>
+ <description><![CDATA[
+ Set setonempty
+
+ If false, don't set the new property if the result is the empty string.
+ ]]></description>
+ </attribute>
+ <attribute name="targetos" type="org.apache.tools.ant.taskdefs.PathConvert.TargetOs"
+ briefType="&quot;windows&quot;, &quot;unix&quot;, &quot;netware&quot;, &quot;os/2&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Set targetos to a platform to one of
+ "windows", "unix", "netware", or "os/2"; required unless
+ unless pathsep and/or dirsep are specified.]]></short-description>
+ <description><![CDATA[
+ Set targetos to a platform to one of
+ "windows", "unix", "netware", or "os/2"; required unless
+ unless pathsep and/or dirsep are specified.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="map" type="org.apache.tools.ant.taskdefs.PathConvert.MapEntry"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create a nested MAP element.]]></short-description>
+ <description>
+ <![CDATA[Create a nested MAP element]]>
+ </description>
+ </element>
+
+ <element name="path" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create a nested PATH element.]]></short-description>
+ <description>
+ <![CDATA[Create a nested PATH element]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="property" category="other"
+ classname="org.apache.tools.ant.taskdefs.Property"
+ >
+
+ <short-description><![CDATA[Sets a property by name, or set of properties (from file or resource) in the project.]]></short-description>
+ <description>
+ <![CDATA[Sets a property by name, or set of properties (from file or
+ resource) in the project. </p>
+ Properties are immutable: whoever sets a property first freezes it for the
+ rest of the build; they are most definately not variable.
+ <p>There are five ways to set properties:</p>
+ <ul>
+ <li>By supplying both the <i>name</i> and <i>value</i> attribute.</li>
+ <li>By supplying both the <i>name</i> and <i>refid</i> attribute.</li>
+ <li>By setting the <i>file</i> attribute with the filename of the property
+ file to load. This property file has the format as defined by the file used
+ in the class java.util.Properties.</li>
+ <li>By setting the <i>resource</i> attribute with the resource name of the
+ property file to load. This property file has the format as defined by the
+ file used in the class java.util.Properties.</li>
+ <li>By setting the <i>environment</i> attribute with a prefix to use.
+ Properties will be defined for every environment variable by
+ prefixing the supplied name and a period to the name of the variable.</li>
+ </ul>
+ <p>Although combinations of these ways are possible, only one should be used
+ at a time. Problems might occur with the order in which properties are set, for
+ instance.</p>
+ <p>The value part of the properties being set, might contain references to other
+ properties. These references are resolved at the time these properties are set.
+ This also holds for properties loaded from a property file.</p>
+ Properties are case sensitive.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[The classpath to use when looking up a resource.]]></short-description>
+ <description><![CDATA[
+ The classpath to use when looking up a resource.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[The classpath to use when looking up a resource,
+ given as reference to a &lt;path&gt; defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ the classpath to use when looking up a resource,
+ given as reference to a &lt;path&gt; defined elsewhere
+ ]]></description>
+ </attribute>
+ <attribute name="environment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The prefix to use when retrieving environment variables.]]></short-description>
+ <description><![CDATA[
+ the prefix to use when retrieving environment variables.
+ Thus if you specify environment=&quot;myenv&quot;
+ you will be able to access OS-specific
+ environment variables via property names &quot;myenv.PATH&quot; or
+ &quot;myenv.TERM&quot;.
+ <p>
+ Note that if you supply a property name with a final
+ &quot;.&quot; it will not be doubled. ie environment=&quot;myenv.&quot; will still
+ allow access of environment variables through &quot;myenv.PATH&quot; and
+ &quot;myenv.TERM&quot;. This functionality is currently only implemented
+ on select platforms. Feel free to send patches to increase the number of platforms
+ this functionality is supported on ;).<br>
+ Note also that properties are case sensitive, even if the
+ environment variables on your operating system are not, e.g. it
+ will be ${env.Path} not ${env.PATH} on Windows 2000.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The filename of a property file to load.]]></short-description>
+ <description><![CDATA[
+ the filename of a property file to load.
+ ]]></description>
+ </attribute>
+ <attribute name="location" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Property to the absolute filename of the
+ given file.]]></short-description>
+ <description><![CDATA[
+ Sets the property to the absolute filename of the
+ given file. If the value of this attribute is an absolute path, it
+ is left unchanged (with / and \ characters converted to the
+ current platforms conventions). Otherwise it is taken as a path
+ relative to the project's basedir and expanded.
+ ]]></description>
+ </attribute>
+ <attribute name="name" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the property to set.]]></short-description>
+ <description><![CDATA[
+ sets the name of the property to set.
+ ]]></description>
+ </attribute>
+ <attribute name="prefix" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Prefix to apply to properties loaded using <code>file</code>
+ or <code>resource</code>.]]></short-description>
+ <description><![CDATA[
+ Prefix to apply to properties loaded using <code>file</code>
+ or <code>resource</code>.
+ A "." is appended to the prefix if not specified.
+ ]]></description>
+ </attribute>
+ <attribute name="refid" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Reference to an Ant datatype
+ declared elsewhere.]]></short-description>
+ <description><![CDATA[
+ Sets a reference to an Ant datatype
+ declared elsewhere.
+ Only yields reasonable results for references
+ PATH like structures or properties.
+ ]]></description>
+ </attribute>
+ <attribute name="resource" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The resource name of a property file to load.]]></short-description>
+ <description><![CDATA[
+ the resource name of a property file to load
+ ]]></description>
+ </attribute>
+ <attribute name="value" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Value of the property.]]></short-description>
+ <description><![CDATA[
+ Sets the value of the property.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[The classpath to use when looking up a resource.]]></short-description>
+ <description>
+ <![CDATA[The classpath to use when looking up a resource.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="propertyfile" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.PropertyFile"
+ >
+
+ <short-description><![CDATA[Modifies settings in a property file.]]></short-description>
+ <description>
+ <![CDATA[Modifies settings in a property file.
+
+ <p>
+The following is an example of its usage:
+ <ul>&lt;target name="setState"&gt;<br>
+ <ul>&lt;property<br>
+ <ul>name="header"<br>
+ value="##Generated file - do not modify!"/&gt;<br>
+ &lt;propertyfile file="apropfile.properties" comment="${header}"&gt;<br>
+ &lt;entry key="product.version.major" type="int" value="5"/&gt;<br>
+ &lt;entry key="product.version.minor" type="int" value="0"/&gt;<br>
+ &lt;entry key="product.build.major" type="int" value="0" /&gt;<br>
+ &lt;entry key="product.build.minor" type="int" operation="+" /&gt;<br>
+ &lt;entry key="product.build.date" type="date" value="now" /&gt;<br>
+ &lt;entry key="intSet" type="int" operation="=" value="681"/&gt;<br>
+ &lt;entry key="intDec" type="int" operation="-"/&gt;<br>
+ &lt;entry key="StringEquals" type="string" value="testValue"/&gt;<br>
+ &lt;/propertyfile&gt;<br></ul>
+ &lt;/target&gt;</ul><p>
+
+The &lt;propertyfile&gt; task must have:<br>
+ <ul><li>file</li></ul>
+Other parameters are:<br>
+ <ul><li>comment, key, operation, type and value (the final four being eliminated shortly)</li></ul>
+
+The &lt;entry&gt; task must have:<br>
+ <ul><li>key</li></ul>
+Other parameters are:<br>
+ <ul><li>operation</li>
+ <li>type</li>
+ <li>value</li>
+ <li>default</li>
+ <li>unit</li>
+ </ul>
+
+If type is unspecified, it defaults to string
+
+Parameter values:<br>
+ <ul><li>operation:</li>
+ <ul><li>"=" (set -- default)</li>
+ <li>"-" (dec)</li>
+ <li>"+" (inc)</li>
+
+ <li>type:</li>
+ <ul><li>"int"</li>
+ <li>"date"</li>
+ <li>"string"</li></ul></ul>
+
+ <li>value:</li>
+ <ul><li>holds the default value, if the property
+ was not found in property file</li>
+ <li>"now" In case of type "date", the
+ value "now" will be replaced by the current
+ date/time and used even if a valid date was
+ found in the property file.</li></ul>
+
+String property types can only use the "=" operation.
+Int property types can only use the "=", "-" or "+" operations.<p>
+
+The message property is used for the property file header, with "\\" being
+a newline delimiter character.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Optional header comment for the file.]]></short-description>
+ <description><![CDATA[
+ optional header comment for the file
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Location of the property file to be edited; required.]]></short-description>
+ <description><![CDATA[
+ Location of the property file to be edited; required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="entry" type="org.apache.tools.ant.taskdefs.optional.PropertyFile.Entry"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description>
+ <![CDATA[]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="pvcs" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.pvcs.Pvcs"
+ >
+
+ <short-description><![CDATA[Extracts the latest edition of the source code from a PVCS repository.]]></short-description>
+ <description>
+ <![CDATA[Extracts the latest edition of the source code from a PVCS repository.
+ PVCS is a version control system
+ developed by <a href="http://www.merant.com/products/pvcs">Merant</a>.
+ <br>
+ Before using this tag, the user running ant must have access to the commands
+ of PVCS (get and pcli) and must have access to the repository. Note that the way to specify
+ the repository is platform dependent so use property to specify location of repository.
+ <br>
+ This version has been tested agains PVCS version 6.5 and 6.6 under Windows and Solaris.
+
+ <b>19-04-2001</b> <p>The task now has a more robust
+ parser. It allows for platform independant file paths
+ and supports file names with <i>()</i>. Thanks to Erik Husby for
+ bringing the bug to my attention.
+
+ <b>27-04-2001</b> <p>UNC paths are now handled properly.
+ Fix provided by Don Jeffery. He also added an <i>UpdateOnly</i> flag
+ that, when true, conditions the PVCS get using the -U option to only
+ update those files that have a modification time (in PVCS) that is newer
+ than the existing workfile.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="filenameformat" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The format of the folder names; optional.]]></short-description>
+ <description><![CDATA[
+ The format of the folder names; optional.
+ This must be in a format suitable for
+ <code>java.text.MessageFormat</code>.
+ Index 1 of the format will be used as the file name.
+ Defaults to <code>{0}-arc({1})</code>
+ ]]></description>
+ </attribute>
+ <attribute name="force" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the value of the force argument; optional.]]></short-description>
+ <description><![CDATA[
+ Specifies the value of the force argument; optional.
+ If set to <i>yes</i> all files that exists and are
+ writable are overwritten. Default <i>no</i> causes the files
+ that are writable to be ignored. This stops the PVCS command
+ <i>get</i> to stop asking questions!
+ ]]></description>
+ </attribute>
+ <attribute name="ignorereturncode" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If set to true the return value from executing the pvcs
+ commands are ignored; optional, default false.]]></short-description>
+ <description><![CDATA[
+ If set to true the return value from executing the pvcs
+ commands are ignored; optional, default false.
+ ]]></description>
+ </attribute>
+ <attribute name="label" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Only files marked with this label are extracted; optional.]]></short-description>
+ <description><![CDATA[
+ Only files marked with this label are extracted; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="linestart" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[What a valid return value from PVCS looks like
+ when it describes a file.]]></short-description>
+ <description><![CDATA[
+ What a valid return value from PVCS looks like
+ when it describes a file. Defaults to <code>&quot;P:</code>.
+ If you are not using an UNC name for your repository and the
+ drive letter <code>P</code> is incorrect for your setup, you may
+ need to change this value, UNC names will always be
+ accepted.
+ ]]></description>
+ </attribute>
+ <attribute name="promotiongroup" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the name of the promotiongroup argument.]]></short-description>
+ <description><![CDATA[
+ Specifies the name of the promotiongroup argument
+ ]]></description>
+ </attribute>
+ <attribute name="pvcsbin" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the location of the PVCS bin directory; optional if on the PATH.]]></short-description>
+ <description><![CDATA[
+ Specifies the location of the PVCS bin directory; optional if on the PATH.
+ On some systems the PVCS executables <i>pcli</i>
+ and <i>get</i> are not found in the PATH. In such cases this attribute
+ should be set to the bin directory of the PVCS installation containing
+ the executables mentioned before. If this attribute isn't specified the
+ tag expects the executables to be found using the PATH environment variable.
+ ]]></description>
+ </attribute>
+ <attribute name="pvcsproject" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The project within the PVCS repository to extract files from;
+ optional, default &quot;/&quot;.]]></short-description>
+ <description><![CDATA[
+ The project within the PVCS repository to extract files from;
+ optional, default &quot;/&quot;
+ ]]></description>
+ </attribute>
+ <attribute name="repository" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The network name of the PVCS repository; required.]]></short-description>
+ <description><![CDATA[
+ The network name of the PVCS repository; required.
+ ]]></description>
+ </attribute>
+ <attribute name="updateonly" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If set to <i>true</i> files are fetched only if
+ newer than existing local files; optional, default false.]]></short-description>
+ <description><![CDATA[
+ If set to <i>true</i> files are fetched only if
+ newer than existing local files; optional, default false.
+ ]]></description>
+ </attribute>
+ <attribute name="workspace" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Workspace to use; optional.]]></short-description>
+ <description><![CDATA[
+ Workspace to use; optional.
+ By specifying a workspace, the files are extracted to that location.
+ A PVCS workspace is a name for a location of the workfiles and
+ isn't as such the location itself.
+ You define the location for a workspace using the PVCS GUI clients.
+ If this isn't specified the default workspace for the current user is used.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="pvcsproject" type="org.apache.tools.ant.taskdefs.optional.pvcs.PvcsProject"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Specify a project within the PVCS repository to extract files from.]]></short-description>
+ <description>
+ <![CDATA[Specify a project within the PVCS repository to extract files from.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="record" category="utility"
+ classname="org.apache.tools.ant.taskdefs.Recorder"
+ >
+
+ <short-description><![CDATA[Adds a listener to the current build process that records the output to a file.]]></short-description>
+ <description>
+ <![CDATA[Adds a listener to the current build process that records the
+ output to a file.
+ <p>Several recorders can exist at the same time. Each recorder is
+ associated with a file. The filename is used as a unique identifier for
+ the recorders. The first call to the recorder task with an unused filename
+ will create a recorder (using the parameters provided) and add it to the
+ listeners of the build. All subsequent calls to the recorder task using
+ this filename will modify that recorders state (recording or not) or other
+ properties (like logging level).</p>
+ <p>Some technical issues: the file's print stream is flushed for &quot;finished&quot;
+ events (buildFinished, targetFinished and taskFinished), and is closed on
+ a buildFinished event.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="action" type="org.apache.tools.ant.taskdefs.Recorder.ActionChoices"
+ briefType="&quot;start&quot;, &quot;stop&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Action for the associated recorder entry.]]></short-description>
+ <description><![CDATA[
+ Sets the action for the associated recorder entry.
+ ]]></description>
+ </attribute>
+ <attribute name="append" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether or not the logger should append to a previous file.]]></short-description>
+ <description><![CDATA[
+ Whether or not the logger should append to a previous file.
+ ]]></description>
+ </attribute>
+ <attribute name="emacsmode" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description><![CDATA[
+ ]]></description>
+ </attribute>
+ <attribute name="loglevel" type="org.apache.tools.ant.taskdefs.Recorder.VerbosityLevelChoices"
+ briefType="&quot;error&quot;, &quot;warn&quot;, &quot;info&quot;, &quot;verbose&quot;, &quot;debug&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Level to which this recorder entry should log to.]]></short-description>
+ <description><![CDATA[
+ Sets the level to which this recorder entry should log to.
+ ]]></description>
+ </attribute>
+ <attribute name="name" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the file to log to, and the name of the recorder
+ entry.]]></short-description>
+ <description><![CDATA[
+ Sets the name of the file to log to, and the name of the recorder
+ entry.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="rename" category="other"
+ classname="org.apache.tools.ant.taskdefs.Rename"
+ deprecated="true"
+ >
+
+ <short-description><![CDATA[Renames a file.]]></short-description>
+ <description>
+ <![CDATA[Renames a file.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[New name of the file.]]></short-description>
+ <description><![CDATA[
+ Sets the new name of the file.
+ ]]></description>
+ </attribute>
+ <attribute name="replace" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether an existing file should be replaced.]]></short-description>
+ <description><![CDATA[
+ Sets whether an existing file should be replaced.
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File to be renamed.]]></short-description>
+ <description><![CDATA[
+ Sets the file to be renamed.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="renameextensions" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.RenameExtensions"
+ deprecated="true"
+ matchingTask="true">
+
+ <short-description><![CDATA[No Description.]]></short-description>
+ <description>
+ <![CDATA[]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="fromextension" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The string that files must end in to be renamed.]]></short-description>
+ <description><![CDATA[
+ The string that files must end in to be renamed
+ ]]></description>
+ </attribute>
+ <attribute name="replace" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Store replace attribute - this determines whether the target file
+ should be overwritten if present.]]></short-description>
+ <description><![CDATA[
+ store replace attribute - this determines whether the target file
+ should be overwritten if present
+ ]]></description>
+ </attribute>
+ <attribute name="srcdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Source dir to find the files to be renamed.]]></short-description>
+ <description><![CDATA[
+ Set the source dir to find the files to be renamed.
+ ]]></description>
+ </attribute>
+ <attribute name="toextension" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The string that renamed files will end with on
+ completion.]]></short-description>
+ <description><![CDATA[
+ The string that renamed files will end with on
+ completion
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="replace" category="filesystem"
+ classname="org.apache.tools.ant.taskdefs.Replace"
+ matchingTask="true">
+
+ <short-description><![CDATA[Replaces all occurrences of one or more string tokens with given values in the indicated files.]]></short-description>
+ <description>
+ <![CDATA[Replaces all occurrences of one or more string tokens with given
+ values in the indicated files. Each value can be either a string
+ or the value of a property available in a designated property file.
+ If you want to replace a text that crosses line boundaries, you
+ must use a nested <code>&lt;replacetoken&gt;</code> element.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The base directory to use when replacing a token in multiple files;
+ required if <code>file</code> is not defined.]]></short-description>
+ <description><![CDATA[
+ The base directory to use when replacing a token in multiple files;
+ required if <code>file</code> is not defined.
+ ]]></description>
+ </attribute>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[File encoding to use on the files read and written by the task;
+ optional, defaults to default JVM encoding.]]></short-description>
+ <description><![CDATA[
+ Set the file encoding to use on the files read and written by the task;
+ optional, defaults to default JVM encoding
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Source file; required unless <code>dir</code> is set.]]></short-description>
+ <description><![CDATA[
+ Set the source file; required unless <code>dir</code> is set.
+ ]]></description>
+ </attribute>
+ <attribute name="propertyfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The name of a property file from which properties specified using
+ nested <code>&lt;replacefilter&gt;</code> elements are drawn;
+ Required only if <i>property</i> attribute of
+ <code>&lt;replacefilter&gt;</code> is used.]]></short-description>
+ <description><![CDATA[
+ The name of a property file from which properties specified using
+ nested <code>&lt;replacefilter&gt;</code> elements are drawn;
+ Required only if <i>property</i> attribute of
+ <code>&lt;replacefilter&gt;</code> is used.
+ ]]></description>
+ </attribute>
+ <attribute name="replacefilterfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of a property file containing filters; optional.]]></short-description>
+ <description><![CDATA[
+ Sets the name of a property file containing filters; optional.
+ Each property will be treated as a
+ replacefilter where token is the name of the property and value
+ is the value of the property.
+ ]]></description>
+ </attribute>
+ <attribute name="summary" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates whether a summary of the replace operation should be
+ produced, detailing how many token occurrences and files were
+ processed; optional, default=false.]]></short-description>
+ <description><![CDATA[
+ Indicates whether a summary of the replace operation should be
+ produced, detailing how many token occurrences and files were
+ processed; optional, default=false
+ ]]></description>
+ </attribute>
+ <attribute name="token" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[String token to replace;
+ required unless a nested
+ <code>replacetoken</code> element or the <code>replacefilterfile</code>
+ attribute is used.]]></short-description>
+ <description><![CDATA[
+ Set the string token to replace;
+ required unless a nested
+ <code>replacetoken</code> element or the <code>replacefilterfile</code>
+ attribute is used.
+ ]]></description>
+ </attribute>
+ <attribute name="value" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[String value to use as token replacement;
+ optional, default is the empty string "".]]></short-description>
+ <description><![CDATA[
+ Set the string value to use as token replacement;
+ optional, default is the empty string ""
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="replacetoken" type="org.apache.tools.ant.taskdefs.Replace.NestedString"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[The token to filter as the text of a nested element.]]></short-description>
+ <description>
+ <![CDATA[the token to filter as the text of a nested element]]>
+ </description>
+ </element>
+
+ <element name="replacevalue" type="org.apache.tools.ant.taskdefs.Replace.NestedString"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[The string to replace the token as the text of a nested element.]]></short-description>
+ <description>
+ <![CDATA[the string to replace the token as the text of a nested element]]>
+ </description>
+ </element>
+
+ <element name="replacefilter" type="org.apache.tools.ant.taskdefs.Replace.Replacefilter"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a nested &lt;replacefilter&gt; element.]]></short-description>
+ <description>
+ <![CDATA[Add a nested &lt;replacefilter&gt; element.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="replaceregexp" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ReplaceRegExp"
+ >
+
+ <short-description><![CDATA[Performs regular expression string replacements in a text file.]]></short-description>
+ <description>
+ <![CDATA[Performs regular expression string replacements in a text
+ file. The input file(s) must be able to be properly processed by
+ a Reader instance. That is, they must be text only, no binary.
+
+ The syntax of the regular expression depends on the implemtation that
+ you choose to use. The system property <code>ant.regexp.regexpimpl</code>
+ will be the classname of the implementation that will be used (the default
+ is <code>org.apache.tools.ant.util.regexp.JakartaOroRegexp</code> and
+ requires the Jakarta Oro Package).
+
+ <pre>
+ For jdk &lt;= 1.3, there are two available implementations:
+ org.apache.tools.ant.util.regexp.JakartaOroRegexp (the default)
+ Requires the jakarta-oro package
+
+ org.apache.tools.ant.util.regexp.JakartaRegexpRegexp
+ Requires the jakarta-regexp package
+
+ For jdk &gt;= 1.4 an additional implementation is available:
+ org.apache.tools.ant.util.regexp.Jdk14RegexpRegexp
+ Requires the jdk 1.4 built in regular expression package.
+
+ Usage:
+
+ Call Syntax:
+
+ &lt;replaceregexp file="file"
+ match="pattern"
+ replace="pattern"
+ flags="options"?
+ byline="true|false"? &gt;
+ regexp?
+ substitution?
+ fileset*
+ &lt;/replaceregexp&gt;
+
+ NOTE: You must have either the file attribute specified, or at least one fileset subelement
+ to operation on. You may not have the file attribute specified if you nest fileset elements
+ inside this task. Also, you cannot specify both match and a regular expression subelement at
+ the same time, nor can you specify the replace attribute and the substitution subelement at
+ the same time.
+
+ Attributes:
+
+ file --&gt; A single file to operation on (mutually exclusive with the fileset subelements)
+ match --&gt; The Regular expression to match
+ replace --&gt; The Expression replacement string
+ flags --&gt; The options to give to the replacement
+ g = Substitute all occurrences. default is to replace only the first one
+ i = Case insensitive match
+
+ byline --&gt; Should this file be processed a single line at a time (default is false)
+ "true" indicates to perform replacement on a line by line basis
+ "false" indicates to perform replacement on the whole file at once.
+
+ Example:
+
+ The following call could be used to replace an old property name in a ".properties"
+ file with a new name. In the replace attribute, you can refer to any part of the
+ match expression in parenthesis using backslash followed by a number like '\1'.
+
+ &lt;replaceregexp file="test.properties"
+ match="MyProperty=(.*)"
+ replace="NewProperty=\1"
+ byline="true" /&gt;
+
+ </pre>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="byline" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Process the file(s) one line at a time, executing the replacement
+ on one line at a time.]]></short-description>
+ <description><![CDATA[
+ Process the file(s) one line at a time, executing the replacement
+ on one line at a time. This is useful if you
+ want to only replace the first occurence of a regular expression on
+ each line, which is not easy to do when processing the file as a whole.
+ Defaults to <i>false</i>.</td>
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[File for which the regular expression should be replaced;
+ required unless a nested fileset is supplied.]]></short-description>
+ <description><![CDATA[
+ file for which the regular expression should be replaced;
+ required unless a nested fileset is supplied.
+ ]]></description>
+ </attribute>
+ <attribute name="flags" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The flags to use when matching the regular expression.]]></short-description>
+ <description><![CDATA[
+ The flags to use when matching the regular expression. For more
+ information, consult the Perl5 syntax.
+ <ul>
+ <li>g : Global replacement. Replace all occurences found
+ <li>i : Case Insensitive. Do not consider case in the match
+ <li>m : Multiline. Treat the string as multiple lines of input,
+ using "^" and "$" as the start or end of any line, respectively, rather than start or end of string.
+ <li> s : Singleline. Treat the string as a single line of input, using
+ "." to match any character, including a newline, which normally, it would not match.
+</ul>
+ ]]></description>
+ </attribute>
+ <attribute name="match" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The regular expression pattern to match in the file(s);
+ required if no nested &lt;regexp&gt; is used.]]></short-description>
+ <description><![CDATA[
+ the regular expression pattern to match in the file(s);
+ required if no nested &lt;regexp&gt; is used
+ ]]></description>
+ </attribute>
+ <attribute name="replace" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The substitution pattern to place in the file(s) in place
+ of the regular expression.]]></short-description>
+ <description><![CDATA[
+ The substitution pattern to place in the file(s) in place
+ of the regular expression.
+ Required if no nested &lt;substitution&gt; is used
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[List files to apply the replacement to.]]></short-description>
+ <description>
+ <![CDATA[list files to apply the replacement to]]>
+ </description>
+ </element>
+
+ <element name="regexp" type="org.apache.tools.ant.types.RegularExpression"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[A regular expression.]]></short-description>
+ <description>
+ <![CDATA[A regular expression.
+ You can use this element to refer to a previously
+ defined regular expression datatype instance]]>
+ </description>
+ </element>
+
+ <element name="substitution" type="org.apache.tools.ant.types.Substitution"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[A substitution pattern.]]></short-description>
+ <description>
+ <![CDATA[A substitution pattern. You can use this element to refer to a previously
+ defined substitution pattern datatype instance.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="rmic" category="java"
+ classname="org.apache.tools.ant.taskdefs.Rmic"
+ matchingTask="true">
+
+ <short-description><![CDATA[Runs the rmic compiler against classes.</p> <p>Rmic can be run on a single class (as specified with the classname attribute) or a number of classes at once (all classes below base that are neither _Stub nor _Skel classes).]]></short-description>
+ <description>
+ <![CDATA[Runs the rmic compiler against classes.</p>
+ <p>Rmic can be run on a single class (as specified with the classname
+ attribute) or a number of classes at once (all classes below base that
+ are neither _Stub nor _Skel classes). If you want to rmic a single
+ class and this class is a class nested into another class, you have to
+ specify the classname in the form <code>Outer$$Inner</code> instead of
+ <code>Outer.Inner</code>.</p>
+ <p>It is possible to refine the set of files that are being rmiced. This can be
+ done with the <i>includes</i>, <i>includesfile</i>, <i>excludes</i>,
+ <i>excludesfile</i> and <i>defaultexcludes</i>
+ attributes. With the <i>includes</i> or <i>includesfile</i> attribute you specify the files you want to
+ have included by using patterns. The <i>exclude</i> or <i>excludesfile</i> attribute is used to specify
+ the files you want to have excluded. This is also done with patterns. And
+ finally with the <i>defaultexcludes</i> attribute, you can specify whether you
+ want to use default exclusions or not. See the section on
+ directory based tasks</a>, on how the
+ inclusion/exclusion of files works, and how to write patterns.</p>
+ <p>This task forms an implicit FileSet and
+ supports all attributes of <code>&lt;fileset&gt;</code>
+ (<code>dir</code> becomes <code>base</code>) as well as the nested
+ <code>&lt;include&gt;</code>, <code>&lt;exclude&gt;</code> and
+ <code>&lt;patternset&gt;</code> elements.</p>
+ <p>It is possible to use different compilers. This can be selected
+ with the &quot;build.rmic&quot; property or the <code>compiler</code>
+ attribute. <a name="compilervalues">There are three choices</a>:</p>
+ <ul>
+ <li>sun (the standard compiler of the JDK)</li>
+ <li>kaffe (the standard compiler of
+ {@link <a href="http://www.kaffe.org">Kaffe</a>})</li>
+ <li>weblogic</li>
+ </ul>
+ <p> The <a href="http://dione.zcu.cz/~toman40/miniRMI/">miniRMI</a>
+ project contains a compiler implementation for this task as well,
+ please consult miniRMI's documentation to learn how to use it.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="base" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Location to store the compiled files; required.]]></short-description>
+ <description><![CDATA[
+ Sets the location to store the compiled files; required
+ ]]></description>
+ </attribute>
+ <attribute name="classname" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The class to run <code>rmic</code> against;
+ optional.]]></short-description>
+ <description><![CDATA[
+ Sets the the class to run <code>rmic</code> against;
+ optional
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath to be used for this compilation.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used for this compilation.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Adds to the classpath a reference to
+ a &lt;path&gt; defined elsewhere.]]></short-description>
+ <description><![CDATA[
+ Adds to the classpath a reference to
+ a &lt;path&gt; defined elsewhere.
+ ]]></description>
+ </attribute>
+ <attribute name="compiler" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Compiler implementation to use; optional,
+ defaults to the value of the <code>build.rmic</code> property,
+ or failing that, default compiler for the current VM.]]></short-description>
+ <description><![CDATA[
+ Sets the compiler implementation to use; optional,
+ defaults to the value of the <code>build.rmic</code> property,
+ or failing that, default compiler for the current VM
+ ]]></description>
+ </attribute>
+