Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServicesTool.java')
-rw-r--r--bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServicesTool.java38
1 files changed, 0 insertions, 38 deletions
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServicesTool.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServicesTool.java
deleted file mode 100644
index 6e568687f..000000000
--- a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/uddi/perspective/GetServicesTool.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.wst.ws.internal.explorer.platform.uddi.perspective;
-
-import org.eclipse.wst.ws.internal.explorer.platform.perspective.ActionTool;
-import org.eclipse.wst.ws.internal.explorer.platform.perspective.Node;
-import org.eclipse.wst.ws.internal.explorer.platform.perspective.ToolManager;
-import org.eclipse.wst.ws.internal.explorer.platform.uddi.actions.SelectPropertiesToolAction;
-
-public class GetServicesTool extends ActionTool
-{
- private String actionLink_;
- public GetServicesTool(ToolManager toolManager,String alt,String actionLink)
- {
- super(toolManager,"uddi/images/services_closed_enabled.gif","uddi/images/services_closed_highlighted.gif",alt);
- actionLink_ = actionLink;
- }
-
- public String getSelectToolActionHref(boolean forHistory)
- {
- Node node = toolManager_.getNode();
- return SelectPropertiesToolAction.getActionLink(node.getNodeId(),toolId_,node.getViewId(),node.getViewToolId(),forHistory);
- }
-
- public String getActionLink()
- {
- return actionLink_;
- }
-}

Back to the top

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>
+ <attribute name="debug" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Generate debug info (passes -g to rmic);
+ optional, defaults to false.]]></short-description>
+ <description><![CDATA[
+ generate debug info (passes -g to rmic);
+ optional, defaults to false
+ ]]></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; optional.]]></short-description>
+ <description><![CDATA[
+ Sets the extension directories that will be used during the
+ compilation; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="filtering" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates whether token filtering should take place;
+ optional, default=false.]]></short-description>
+ <description><![CDATA[
+ indicates whether token filtering should take place;
+ optional, default=false
+ ]]></description>
+ </attribute>
+ <attribute name="idl" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates that IDL output should be
+ generated.]]></short-description>
+ <description><![CDATA[
+ Indicates that IDL output should be
+ generated. This defaults to false
+ if not set.
+ ]]></description>
+ </attribute>
+ <attribute name="idlopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Pass additional arguments for idl compile.]]></short-description>
+ <description><![CDATA[
+ pass additional arguments for idl compile
+ ]]></description>
+ </attribute>
+ <attribute name="iiop" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Indicates that IIOP compatible stubs should
+ be generated; optional, defaults to false
+ if not set.]]></short-description>
+ <description><![CDATA[
+ Indicates that IIOP compatible stubs should
+ be generated; optional, defaults to false
+ if not set.
+ ]]></description>
+ </attribute>
+ <attribute name="iiopopts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Set additional arguments for iiop.]]></short-description>
+ <description><![CDATA[
+ Set additional arguments for iiop
+ ]]></description>
+ </attribute>
+ <attribute name="includeantruntime" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether or not to include ant's own classpath in this task's
+ classpath.]]></short-description>
+ <description><![CDATA[
+ Sets whether or not to include ant's own classpath in this task's
+ classpath.
+ Optional; default is <code>true</code>.
+ ]]></description>
+ </attribute>
+ <attribute name="includejavaruntime" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Task's classpath.]]></short-description>
+ <description><![CDATA[
+ task's classpath.
+ Enables or disables including the default run-time
+ libraries from the executing VM; optional,
+ defaults to false
+ ]]></description>
+ </attribute>
+ <attribute name="sourcebase" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Optional directory to save generated source files to.]]></short-description>
+ <description><![CDATA[
+ optional directory to save generated source files to.
+ ]]></description>
+ </attribute>
+ <attribute name="stubversion" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specify the JDK version for the generated stub code.]]></short-description>
+ <description><![CDATA[
+ Specify the JDK version for the generated stub code.
+ Specify &quot;1.1&quot; to pass the &quot;-v1.1&quot; option to rmic.</td>
+ ]]></description>
+ </attribute>
+ <attribute name="verify" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to enable verification so that the classes
+ found by the directory match are
+ checked to see if they implement java.rmi.Remote.]]></short-description>
+ <description><![CDATA[
+ Flag to enable verification so that the classes
+ found by the directory match are
+ checked to see if they implement java.rmi.Remote.
+ Optional; his defaults to false if not set.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Creates a nested classpath element.]]></short-description>
+ <description>
+ <![CDATA[Creates a nested classpath element.]]>
+ </description>
+ </element>
+
+ <element name="compilerarg" type="org.apache.tools.ant.taskdefs.Rmic.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[Maybe creates a nested extdirs element.]]></short-description>
+ <description>
+ <![CDATA[Maybe creates a nested extdirs element.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="rpm" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.Rpm"
+ >
+
+ <short-description><![CDATA[Invokes the rpm tool to build a Linux installation file.]]></short-description>
+ <description>
+ <![CDATA[Invokes the rpm tool to build a Linux installation file.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="cleanbuilddir" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag (optional, default=false) to remove
+ the generated files in the BUILD directory.]]></short-description>
+ <description><![CDATA[
+ Flag (optional, default=false) to remove
+ the generated files in the BUILD directory
+ ]]></description>
+ </attribute>
+ <attribute name="command" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[What command to issue to the rpm tool; optional.]]></short-description>
+ <description><![CDATA[
+ What command to issue to the rpm tool; optional.
+ The default is "-bb"
+ ]]></description>
+ </attribute>
+ <attribute name="error" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Optional file to save stderr to.]]></short-description>
+ <description><![CDATA[
+ Optional file to save stderr to
+ ]]></description>
+ </attribute>
+ <attribute name="output" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Optional file to save stdout to.]]></short-description>
+ <description><![CDATA[
+ Optional file to save stdout to.
+ ]]></description>
+ </attribute>
+ <attribute name="removesource" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag (optional, default=false)
+ to remove the sources after the build.]]></short-description>
+ <description><![CDATA[
+ Flag (optional, default=false)
+ to remove the sources after the build.
+ See the the <tt>--rmsource</tt> option of rpmbuild.
+ ]]></description>
+ </attribute>
+ <attribute name="removespec" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag (optional, default=false) to remove the spec file from SPECS.]]></short-description>
+ <description><![CDATA[
+ Flag (optional, default=false) to remove the spec file from SPECS
+ ]]></description>
+ </attribute>
+ <attribute name="specfile" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the spec File to use; required.]]></short-description>
+ <description><![CDATA[
+ The name of the spec File to use; required.
+ ]]></description>
+ </attribute>
+ <attribute name="topdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory which will have the expected
+ subdirectories, SPECS, SOURCES, BUILD, SRPMS ; optional.]]></short-description>
+ <description><![CDATA[
+ The directory which will have the expected
+ subdirectories, SPECS, SOURCES, BUILD, SRPMS ; optional.
+ If this isn't specified,
+ the <tt>baseDir</tt> value is used
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="script" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.Script"
+ >
+
+ <short-description><![CDATA[Executes a script.]]></short-description>
+ <description>
+ <![CDATA[Executes a script.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="language" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Defines the language (required).]]></short-description>
+ <description><![CDATA[
+ Defines the language (required).
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Load the script from an external file ; optional.]]></short-description>
+ <description><![CDATA[
+ Load the script from an external file ; optional.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ <body >
+ <description><![CDATA[
+ The script text.
+ ]]></description>
+ </body>
+
+ </structure>
+
+</task>
+
+
+<task name="sequential" category="control"
+ classname="org.apache.tools.ant.taskdefs.Sequential"
+ >
+
+ <short-description><![CDATA[Sequential is a container task - it can contain other Ant tasks.]]></short-description>
+ <description>
+ <![CDATA[Sequential is a container task - it can contain other Ant tasks. The nested
+ tasks are simply executed in sequence. Sequential's primary use is to support
+ the sequential execution of a subset of tasks within the
+{@link Parallel Parallel Task}
+
+ <p>
+ The sequential task has no attributes and does not support any nested
+ elements apart from Ant tasks. Any valid Ant task may be embedded within the
+ sequential task.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="serverdeploy" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.j2ee.ServerDeploy"
+ >
+
+ <short-description><![CDATA[Controls hot deployment tools for J2EE servers.]]></short-description>
+ <description>
+ <![CDATA[Controls hot deployment tools for J2EE servers.
+
+ This class is used as a framework for the creation of vendor specific
+ hot deployment tools.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="action" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The action to be performed, usually "deploy"; required.]]></short-description>
+ <description><![CDATA[
+ The action to be performed, usually "deploy"; required.
+ Some tools support additional actions, such as "delete", "list", "undeploy", "update"...
+ ]]></description>
+ </attribute>
+ <attribute name="source" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The filename of the component to be deployed; optional
+ depending upon the tool and the action.]]></short-description>
+ <description><![CDATA[
+ The filename of the component to be deployed; optional
+ depending upon the tool and the action.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="generic" type="org.apache.tools.ant.taskdefs.optional.j2ee.GenericHotDeploymentTool"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Creates a generic deployment tool.]]></short-description>
+ <description>
+ <![CDATA[Creates a generic deployment tool.
+ <p>Ant calls this method on creation to handle embedded "generic" elements
+ in the ServerDeploy task.]]>
+ </description>
+ </element>
+
+ <element name="jonas" type="org.apache.tools.ant.taskdefs.optional.j2ee.JonasHotDeploymentTool"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Creates a JOnAS deployment tool, for deployment to JOnAS servers.]]></short-description>
+ <description>
+ <![CDATA[Creates a JOnAS deployment tool, for deployment to JOnAS servers.
+ <p>Ant calls this method on creation to handle embedded "jonas" elements
+ in the ServerDeploy task.]]>
+ </description>
+ </element>
+
+ <element name="weblogic" type="org.apache.tools.ant.taskdefs.optional.j2ee.WebLogicHotDeploymentTool"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Creates a WebLogic deployment tool, for deployment to WebLogic servers.]]></short-description>
+ <description>
+ <![CDATA[Creates a WebLogic deployment tool, for deployment to WebLogic servers.
+ <p>Ant calls this method on creation to handle embedded "weblogic" elements
+ in the ServerDeploy task.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="setproxy" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.net.SetProxy"
+ >
+
+ <short-description><![CDATA[Sets Java's web proxy properties, so that tasks and code run in the same JVM can have through-the-firewall access to remote web sites, and remote ftp sites.]]></short-description>
+ <description>
+ <![CDATA[Sets Java's web proxy properties, so that tasks and code run in
+ the same JVM can have through-the-firewall access to remote web sites,
+ and remote ftp sites.
+ You can nominate an http and ftp proxy, or a socks server, reset the server
+ settings, or do nothing at all.
+ <p>
+ Examples
+ <pre>&lt;setproxy/&gt;</pre>
+ do nothing
+ <pre>&lt;setproxy proxyhost="firewall"/&gt;</pre>
+ set the proxy to firewall:80
+ <pre>&lt;setproxy proxyhost="firewall" proxyport="81"/&gt;</pre>
+ set the proxy to firewall:81
+ <pre>&lt;setproxy proxyhost=""/&gt;</pre>
+ stop using the http proxy; don't change the socks settings
+ <pre>&lt;setproxy socksproxyhost="socksy"/&gt;</pre>
+ use socks via socksy:1080
+ <pre>&lt;setproxy socksproxyhost=""/&gt;</pre>
+ stop using the socks server]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="nonproxyhosts" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[A list of hosts to bypass the proxy on.]]></short-description>
+ <description><![CDATA[
+ A list of hosts to bypass the proxy on. These should be separated
+ with the vertical bar character '|'. Only in Java 1.4 does ftp use
+ this list.
+ e.g. fozbot.corp.sun.com|*.eng.sun.com
+ ]]></description>
+ </attribute>
+ <attribute name="proxyhost" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The HTTP/ftp proxy host.]]></short-description>
+ <description><![CDATA[
+ the HTTP/ftp proxy host. Set this to "" for the http proxy
+ option to be disabled
+ ]]></description>
+ </attribute>
+ <attribute name="proxyport" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[The HTTP/ftp proxy port number; default is 80.]]></short-description>
+ <description><![CDATA[
+ the HTTP/ftp proxy port number; default is 80
+ ]]></description>
+ </attribute>
+ <attribute name="socksproxyhost" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of a Socks server.]]></short-description>
+ <description><![CDATA[
+ The name of a Socks server. Set to "" to turn socks
+ proxying off.
+ ]]></description>
+ </attribute>
+ <attribute name="socksproxyport" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[ProxyPort for socks connections.]]></short-description>
+ <description><![CDATA[
+ Set the ProxyPort for socks connections. The default value is 1080
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="signjar" category="java"
+ classname="org.apache.tools.ant.taskdefs.SignJar"
+ >
+
+ <short-description><![CDATA[Signs jar or zip files with the javasign command line tool.]]></short-description>
+ <description>
+ <![CDATA[Signs jar or zip files with the javasign command line tool. The
+ tool detailed dependency checking: files are only signed if they
+ are not signed. The <tt>signjar</tt> attribute can point to the file to
+ generate; if this file exists then
+ its modification date is used as a cue as to whether to resign any JAR file.
+ <br>
+ <strong>Note:</strong> Requires Java 1.2 or later. </p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="alias" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The alias to sign under; required.]]></short-description>
+ <description><![CDATA[
+ the alias to sign under; required
+ ]]></description>
+ </attribute>
+ <attribute name="internalsf" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to include the .SF file inside the signature;
+ optional; default false.]]></short-description>
+ <description><![CDATA[
+ Flag to include the .SF file inside the signature;
+ optional; default false
+ ]]></description>
+ </attribute>
+ <attribute name="jar" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The jar file to sign; required.]]></short-description>
+ <description><![CDATA[
+ the jar file to sign; required
+ ]]></description>
+ </attribute>
+ <attribute name="keypass" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Password for private key (if different); optional.]]></short-description>
+ <description><![CDATA[
+ password for private key (if different); optional
+ ]]></description>
+ </attribute>
+ <attribute name="keystore" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Keystore location; required.]]></short-description>
+ <description><![CDATA[
+ keystore location; required
+ ]]></description>
+ </attribute>
+ <attribute name="lazy" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to control whether the presence of a signature
+ file means a JAR is signed;
+ optional, default false.]]></short-description>
+ <description><![CDATA[
+ flag to control whether the presence of a signature
+ file means a JAR is signed;
+ optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="sectionsonly" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to compute hash of entire manifest;
+ optional, default false.]]></short-description>
+ <description><![CDATA[
+ flag to compute hash of entire manifest;
+ optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="sigfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of .SF/.DSA file; optional.]]></short-description>
+ <description><![CDATA[
+ name of .SF/.DSA file; optional
+ ]]></description>
+ </attribute>
+ <attribute name="signedjar" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of signed JAR file; optional.]]></short-description>
+ <description><![CDATA[
+ name of signed JAR file; optional
+ ]]></description>
+ </attribute>
+ <attribute name="storepass" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Password for keystore integrity; required.]]></short-description>
+ <description><![CDATA[
+ password for keystore integrity; required
+ ]]></description>
+ </attribute>
+ <attribute name="storetype" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Keystore type; optional.]]></short-description>
+ <description><![CDATA[
+ keystore type; optional
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Enable verbose output when signing
+ ; optional: default false.]]></short-description>
+ <description><![CDATA[
+ Enable verbose output when signing
+ ; optional: default false
+ ]]></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 sign.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files to sign]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="sleep" category="utility"
+ classname="org.apache.tools.ant.taskdefs.Sleep"
+ >
+
+ <short-description><![CDATA[Sleep, or pause, for a period of time.]]></short-description>
+ <description>
+ <![CDATA[Sleep, or pause, for a period of time.
+
+ A task for sleeping a short period of time, useful when a
+ build or deployment process requires an interval between tasks.
+<p>
+ A negative value can be supplied to any of attributes provided the total sleep time
+ is positive, pending fundamental changes in physics and JVM
+ execution tims</p>
+ Note that sleep times are always hints to be interpred by the OS how it feels
+ small times may either be ignored or rounded up to a minimum timeslice. Note
+ also that the system clocks often have a fairly low granularity too, which complicates
+ measuring how long a sleep actually took.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag controlling whether to break the build on an error.]]></short-description>
+ <description><![CDATA[
+ flag controlling whether to break the build on an error.
+ ]]></description>
+ </attribute>
+ <attribute name="hours" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Hours to add to the sleep time.]]></short-description>
+ <description><![CDATA[
+ hours to add to the sleep time.
+ ]]></description>
+ </attribute>
+ <attribute name="milliseconds" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Milliseconds to add to the sleep time.]]></short-description>
+ <description><![CDATA[
+ milliseconds to add to the sleep time
+ ]]></description>
+ </attribute>
+ <attribute name="minutes" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Minutes to add to the sleep time.]]></short-description>
+ <description><![CDATA[
+ minutes to add to the sleep time
+ ]]></description>
+ </attribute>
+ <attribute name="seconds" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Seconds to add to the sleep time.]]></short-description>
+ <description><![CDATA[
+ seconds to add to the sleep time
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="soscheckin" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.sos.SOSCheckin"
+ >
+
+ <short-description><![CDATA[Commits and unlocks files in Visual SourceSafe via a SourceOffSite server.]]></short-description>
+ <description>
+ <![CDATA[Commits and unlocks files in Visual SourceSafe via a SourceOffSite server.
+
+ <p>
+ The following attributes are interpretted:
+ <table border="1">
+ <tr>
+ <th>Attribute</th>
+ <th>Values</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>soscmddir</td>
+ <td>Directory which contains soscmd(.exe) <br>
+ soscmd(.exe) must be in the path if this is not specified</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>vssserverpath</td>
+ <td>path to the srcsafe.ini - eg. \\server\vss\srcsafe.ini</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>sosserverpath</td>
+ <td>address and port of the SOS server - eg. 192.168.0.1:8888</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>projectpath</td>
+ <td>SourceSafe project path without the "$"</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>file</td>
+ <td>Filename to act upon<br> If no file is specified then act upon the project</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>username</td>
+ <td>SourceSafe username</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>password</td>
+ <td>SourceSafe password</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>localpath</td>
+ <td>Override the working directory and get to the specified path</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>soshome</td>
+ <td>The path to the SourceOffSite home directory</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>nocompression</td>
+ <td>true or false - disable compression</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>recursive</td>
+ <td>true or false - Only works with the CheckOutProject command</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>nocache</td>
+ <td>true or false - Only needed if SOSHOME is set as an enviroment variable</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>verbose</td>
+ <td>true or false - Status messages are displayed</td>
+ <td>No</td>
+ </tr>
+ <td>comment</td>
+ <td>A comment to be applied to all files being checked in</td>
+ <td>No</td>
+ </tr>
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Comment to apply to all files being labelled;
+ optional, only valid in SOSLabel.]]></short-description>
+ <description><![CDATA[
+ Set the comment to apply to all files being labelled;
+ optional, only valid in SOSLabel
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Filename to act upon; optional.]]></short-description>
+ <description><![CDATA[
+ Set the Filename to act upon; optional.
+ If no file is specified then the tasks
+ act upon the project
+ ]]></description>
+ </attribute>
+ <attribute name="label" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Labeled version to operate on in SourceSafe.]]></short-description>
+ <description><![CDATA[
+ Set the labeled version to operate on in SourceSafe
+ ]]></description>
+ </attribute>
+ <attribute name="localpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Override the working directory and get to the specified path; optional.]]></short-description>
+ <description><![CDATA[
+ Override the working directory and get to the specified path; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="nocache" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to disable the cache when set;
+ optional needed if SOSHOME is set as an environment variable.]]></short-description>
+ <description><![CDATA[
+ flag to disable the cache when set;
+ optional needed if SOSHOME is set as an environment variable.
+ ]]></description>
+ </attribute>
+ <attribute name="nocompress" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag that disables compression when set; optional, default.]]></short-description>
+ <description><![CDATA[
+ Flag that disables compression when set; optional, default
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe password; optional.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe password; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="projectpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe project path without the "$" prefix; required.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe project path without the "$" prefix; required
+ ]]></description>
+ </attribute>
+ <attribute name="recursive" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to recursively apply the action (not valid
+ on all SOS tasks ); optional, default false.]]></short-description>
+ <description><![CDATA[
+ Flag to recursively apply the action (not valid
+ on all SOS tasks ); optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="soscmd" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where soscmd(.exe) is located;
+ optional, soscmd must be on the path if omitted.]]></short-description>
+ <description><![CDATA[
+ Set the directory where soscmd(.exe) is located;
+ optional, soscmd must be on the path if omitted.
+ ]]></description>
+ </attribute>
+ <attribute name="soshome" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The path to the SourceOffSite home directory.]]></short-description>
+ <description><![CDATA[
+ The path to the SourceOffSite home directory
+ ]]></description>
+ </attribute>
+ <attribute name="sosserverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Address and port of SourceOffSite Server,
+ eg. 192.168.0.1:8888 ; required.]]></short-description>
+ <description><![CDATA[
+ Set the address and port of SourceOffSite Server,
+ eg. 192.168.0.1:8888 ; required.
+ ]]></description>
+ </attribute>
+ <attribute name="username" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe username; required.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe username; required.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Enable verbose output; optional, default false.]]></short-description>
+ <description><![CDATA[
+ Enable verbose output; optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="version" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[A version number to get -
+ only works with the SOSGet on a file; optional.]]></short-description>
+ <description><![CDATA[
+ Set the a version number to get -
+ only works with the SOSGet on a file; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="vssserverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the location of the ss.ini file;
+ required.]]></short-description>
+ <description><![CDATA[
+ Set the path to the location of the ss.ini file;
+ required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="soscheckout" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.sos.SOSCheckout"
+ >
+
+ <short-description><![CDATA[Retrieves and locks files in Visual SourceSafe via a SourceOffSite server.]]></short-description>
+ <description>
+ <![CDATA[Retrieves and locks files in Visual SourceSafe via a SourceOffSite server.
+
+ <p>
+ The following attributes are interpretted:
+ <table border="1">
+ <tr>
+ <th>Attribute</th>
+ <th>Values</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>soscmddir</td>
+ <td>Directory which contains soscmd(.exe) <br>
+ soscmd(.exe) must be in the path if this is not specified</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>vssserverpath</td>
+ <td>path to the srcsafe.ini - eg. \\server\vss\srcsafe.ini</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>sosserverpath</td>
+ <td>address and port of the SOS server - eg. 192.168.0.1:8888</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>projectpath</td>
+ <td>SourceSafe project path without the "$"</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>file</td>
+ <td>Filename to act upon<br> If no file is specified then act upon the project</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>username</td>
+ <td>SourceSafe username</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>password</td>
+ <td>SourceSafe password</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>localpath</td>
+ <td>Override the working directory and get to the specified path</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>soshome</td>
+ <td>The path to the SourceOffSite home directory</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>nocompression</td>
+ <td>true or false - disable compression</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>recursive</td>
+ <td>true or false - Only works with the CheckOutProject command</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>nocache</td>
+ <td>true or false - Only needed if SOSHOME is set as an enviroment variable</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>verbose</td>
+ <td>true or false - Status messages are displayed</td>
+ <td>No</td>
+ </tr>
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Comment to apply to all files being labelled;
+ optional, only valid in SOSLabel.]]></short-description>
+ <description><![CDATA[
+ Set the comment to apply to all files being labelled;
+ optional, only valid in SOSLabel
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Filename to act upon; optional.]]></short-description>
+ <description><![CDATA[
+ Set the Filename to act upon; optional.
+ If no file is specified then the tasks
+ act upon the project
+ ]]></description>
+ </attribute>
+ <attribute name="label" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Labeled version to operate on in SourceSafe.]]></short-description>
+ <description><![CDATA[
+ Set the labeled version to operate on in SourceSafe
+ ]]></description>
+ </attribute>
+ <attribute name="localpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Override the working directory and get to the specified path; optional.]]></short-description>
+ <description><![CDATA[
+ Override the working directory and get to the specified path; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="nocache" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to disable the cache when set;
+ optional needed if SOSHOME is set as an environment variable.]]></short-description>
+ <description><![CDATA[
+ flag to disable the cache when set;
+ optional needed if SOSHOME is set as an environment variable.
+ ]]></description>
+ </attribute>
+ <attribute name="nocompress" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag that disables compression when set; optional, default.]]></short-description>
+ <description><![CDATA[
+ Flag that disables compression when set; optional, default
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe password; optional.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe password; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="projectpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe project path without the "$" prefix; required.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe project path without the "$" prefix; required
+ ]]></description>
+ </attribute>
+ <attribute name="recursive" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to recursively apply the action (not valid
+ on all SOS tasks ); optional, default false.]]></short-description>
+ <description><![CDATA[
+ Flag to recursively apply the action (not valid
+ on all SOS tasks ); optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="soscmd" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where soscmd(.exe) is located;
+ optional, soscmd must be on the path if omitted.]]></short-description>
+ <description><![CDATA[
+ Set the directory where soscmd(.exe) is located;
+ optional, soscmd must be on the path if omitted.
+ ]]></description>
+ </attribute>
+ <attribute name="soshome" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The path to the SourceOffSite home directory.]]></short-description>
+ <description><![CDATA[
+ The path to the SourceOffSite home directory
+ ]]></description>
+ </attribute>
+ <attribute name="sosserverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Address and port of SourceOffSite Server,
+ eg. 192.168.0.1:8888 ; required.]]></short-description>
+ <description><![CDATA[
+ Set the address and port of SourceOffSite Server,
+ eg. 192.168.0.1:8888 ; required.
+ ]]></description>
+ </attribute>
+ <attribute name="username" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe username; required.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe username; required.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Enable verbose output; optional, default false.]]></short-description>
+ <description><![CDATA[
+ Enable verbose output; optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="version" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[A version number to get -
+ only works with the SOSGet on a file; optional.]]></short-description>
+ <description><![CDATA[
+ Set the a version number to get -
+ only works with the SOSGet on a file; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="vssserverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the location of the ss.ini file;
+ required.]]></short-description>
+ <description><![CDATA[
+ Set the path to the location of the ss.ini file;
+ required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="sosget" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.sos.SOSGet"
+ >
+
+ <short-description><![CDATA[Retrieves a read-only copy of the specified project or file from Visual SourceSafe via a SourceOffSite server.]]></short-description>
+ <description>
+ <![CDATA[Retrieves a read-only copy of the specified project or file
+ from Visual SourceSafe via a SourceOffSite server.
+ <p>
+ The following attributes are interpretted:
+ <table border="1">
+ <tbody>
+ <tr>
+ <th>Attribute</th>
+ <th>Values</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>soscmddir</td>
+ <td>Directory which contains soscmd(.exe) <br>
+ soscmd(.exe) must be in the path if this is not specified</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>vssserverpath</td>
+ <td>path to the srcsafe.ini - eg. \\server\vss\srcsafe.ini</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>sosserverpath</td>
+ <td>address and port of the SOS server - eg. 192.168.0.1:8888</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>projectpath</td>
+ <td>SourceSafe project path without the "$"</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>file</td>
+ <td>Filename to act upon<br>
+ If no file is specified then act upon the project</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>username</td>
+ <td>SourceSafe username</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>password</td>
+ <td>SourceSafe password</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>localpath</td>
+ <td>Override the working directory and get to the specified path</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>soshome</td>
+ <td>The path to the SourceOffSite home directory</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>nocompression</td>
+ <td>true or false - disable compression</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>recursive</td>
+ <td>true or false - Only works with the GetProject command</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>version</td>
+ <td>a version number to get - Only works with the GetFile command</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>label</td>
+ <td>a label version to get - Only works with the GetProject command</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>nocache</td>
+ <td>true or false - Only needed if SOSHOME is set as an enviroment variable</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>verbose</td>
+ <td>true or false - Status messages are displayed</td>
+ <td>No</td>
+ </tr>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Comment to apply to all files being labelled;
+ optional, only valid in SOSLabel.]]></short-description>
+ <description><![CDATA[
+ Set the comment to apply to all files being labelled;
+ optional, only valid in SOSLabel
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Filename to act upon; optional.]]></short-description>
+ <description><![CDATA[
+ Set the Filename to act upon; optional.
+ If no file is specified then the tasks
+ act upon the project
+ ]]></description>
+ </attribute>
+ <attribute name="label" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Labeled version to operate on in SourceSafe.]]></short-description>
+ <description><![CDATA[
+ Set the labeled version to operate on in SourceSafe
+ ]]></description>
+ </attribute>
+ <attribute name="localpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Override the working directory and get to the specified path; optional.]]></short-description>
+ <description><![CDATA[
+ Override the working directory and get to the specified path; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="nocache" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to disable the cache when set;
+ optional needed if SOSHOME is set as an environment variable.]]></short-description>
+ <description><![CDATA[
+ flag to disable the cache when set;
+ optional needed if SOSHOME is set as an environment variable.
+ ]]></description>
+ </attribute>
+ <attribute name="nocompress" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag that disables compression when set; optional, default.]]></short-description>
+ <description><![CDATA[
+ Flag that disables compression when set; optional, default
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe password; optional.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe password; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="projectpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe project path without the "$" prefix; required.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe project path without the "$" prefix; required
+ ]]></description>
+ </attribute>
+ <attribute name="recursive" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to recursively apply the action (not valid
+ on all SOS tasks ); optional, default false.]]></short-description>
+ <description><![CDATA[
+ Flag to recursively apply the action (not valid
+ on all SOS tasks ); optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="soscmd" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where soscmd(.exe) is located;
+ optional, soscmd must be on the path if omitted.]]></short-description>
+ <description><![CDATA[
+ Set the directory where soscmd(.exe) is located;
+ optional, soscmd must be on the path if omitted.
+ ]]></description>
+ </attribute>
+ <attribute name="soshome" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The path to the SourceOffSite home directory.]]></short-description>
+ <description><![CDATA[
+ The path to the SourceOffSite home directory
+ ]]></description>
+ </attribute>
+ <attribute name="sosserverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Address and port of SourceOffSite Server,
+ eg. 192.168.0.1:8888 ; required.]]></short-description>
+ <description><![CDATA[
+ Set the address and port of SourceOffSite Server,
+ eg. 192.168.0.1:8888 ; required.
+ ]]></description>
+ </attribute>
+ <attribute name="username" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe username; required.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe username; required.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Enable verbose output; optional, default false.]]></short-description>
+ <description><![CDATA[
+ Enable verbose output; optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="version" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[A version number to get -
+ only works with the SOSGet on a file; optional.]]></short-description>
+ <description><![CDATA[
+ Set the a version number to get -
+ only works with the SOSGet on a file; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="vssserverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the location of the ss.ini file;
+ required.]]></short-description>
+ <description><![CDATA[
+ Set the path to the location of the ss.ini file;
+ required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="soslabel" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.sos.SOSLabel"
+ >
+
+ <short-description><![CDATA[Labels Visual SourceSafe files via a SourceOffSite server.]]></short-description>
+ <description>
+ <![CDATA[Labels Visual SourceSafe files via a SourceOffSite server.
+ <p>
+ The following attributes are interpreted:
+ <table border="1">
+ <tr>
+ <th>Attribute</th>
+ <th>Values</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>soscmddir</td>
+ <td>Directory which contains soscmd(.exe) <br>
+ soscmd(.exe) must be in the path if this is not specified</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>vssserverpath</td>
+ <td>path to the srcsafe.ini - eg. \\server\vss\srcsafe.ini</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>sosserverpath</td>
+ <td>address and port of the SOS server - eg. 192.168.0.1:8888</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>projectpath</td>
+ <td>SourceSafe project path without the "$"</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>username</td>
+ <td>SourceSafe username</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>password</td>
+ <td>SourceSafe password</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>label</td>
+ <td>The label to apply to a project</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>comment</td>
+ <td>A comment to be applied to all files being labeled</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>verbose</td>
+ <td>true or false - Status messages are displayed</td>
+ <td>No</td>
+ </tr>
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Comment to apply to all files being labelled;
+ optional, only valid in SOSLabel.]]></short-description>
+ <description><![CDATA[
+ Set the comment to apply to all files being labelled;
+ optional, only valid in SOSLabel
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Filename to act upon; optional.]]></short-description>
+ <description><![CDATA[
+ Set the Filename to act upon; optional.
+ If no file is specified then the tasks
+ act upon the project
+ ]]></description>
+ </attribute>
+ <attribute name="label" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Labeled version to operate on in SourceSafe.]]></short-description>
+ <description><![CDATA[
+ Set the labeled version to operate on in SourceSafe
+ ]]></description>
+ </attribute>
+ <attribute name="localpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Override the working directory and get to the specified path; optional.]]></short-description>
+ <description><![CDATA[
+ Override the working directory and get to the specified path; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="nocache" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to disable the cache when set;
+ optional needed if SOSHOME is set as an environment variable.]]></short-description>
+ <description><![CDATA[
+ flag to disable the cache when set;
+ optional needed if SOSHOME is set as an environment variable.
+ ]]></description>
+ </attribute>
+ <attribute name="nocompress" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag that disables compression when set; optional, default.]]></short-description>
+ <description><![CDATA[
+ Flag that disables compression when set; optional, default
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe password; optional.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe password; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="projectpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe project path without the "$" prefix; required.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe project path without the "$" prefix; required
+ ]]></description>
+ </attribute>
+ <attribute name="recursive" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to recursively apply the action (not valid
+ on all SOS tasks ); optional, default false.]]></short-description>
+ <description><![CDATA[
+ Flag to recursively apply the action (not valid
+ on all SOS tasks ); optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="soscmd" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where soscmd(.exe) is located;
+ optional, soscmd must be on the path if omitted.]]></short-description>
+ <description><![CDATA[
+ Set the directory where soscmd(.exe) is located;
+ optional, soscmd must be on the path if omitted.
+ ]]></description>
+ </attribute>
+ <attribute name="soshome" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The path to the SourceOffSite home directory.]]></short-description>
+ <description><![CDATA[
+ The path to the SourceOffSite home directory
+ ]]></description>
+ </attribute>
+ <attribute name="sosserverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Address and port of SourceOffSite Server,
+ eg. 192.168.0.1:8888 ; required.]]></short-description>
+ <description><![CDATA[
+ Set the address and port of SourceOffSite Server,
+ eg. 192.168.0.1:8888 ; required.
+ ]]></description>
+ </attribute>
+ <attribute name="username" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe username; required.]]></short-description>
+ <description><![CDATA[
+ Set the SourceSafe username; required.
+ ]]></description>
+ </attribute>
+ <attribute name="verbose" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Enable verbose output; optional, default false.]]></short-description>
+ <description><![CDATA[
+ Enable verbose output; optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="version" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[A version number to get -
+ only works with the SOSGet on a file; optional.]]></short-description>
+ <description><![CDATA[
+ Set the a version number to get -
+ only works with the SOSGet on a file; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="vssserverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Path to the location of the ss.ini file;
+ required.]]></short-description>
+ <description><![CDATA[
+ Set the path to the location of the ss.ini file;
+ required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="sound" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.sound.SoundTask"
+ >
+
+ <short-description><![CDATA[Plays a sound file at the end of the build, according to whether the build failed or succeeded.]]></short-description>
+ <description>
+ <![CDATA[Plays a sound file at the end of the build, according to whether the build failed or succeeded.
+
+ There are three attributes to be set:
+
+ <code>source</code>: the location of the audio file to be played
+ <code>duration</code>: play the sound file continuously until "duration" milliseconds has expired
+ <code>loops</code>: the number of times the sound file should be played until stopped
+
+ I have only tested this with .WAV and .AIFF sound file formats. Both seem
+ to work fine.
+
+ plans for the future:
+ - use the midi api to define sounds (or drum beat etc) in xml and have
+ Ant play them back]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ </attributes>
+
+ <elements>
+ <element name="fail" type="org.apache.tools.ant.taskdefs.optional.sound.SoundTask.BuildAlert"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a sound when the build fails.]]></short-description>
+ <description>
+ <![CDATA[add a sound when the build fails]]>
+ </description>
+ </element>
+
+ <element name="success" type="org.apache.tools.ant.taskdefs.optional.sound.SoundTask.BuildAlert"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a sound when the build succeeds.]]></short-description>
+ <description>
+ <![CDATA[add a sound when the build succeeds]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="splash" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.splash.SplashTask"
+ >
+
+ <short-description><![CDATA[Creates a splash screen.]]></short-description>
+ <description>
+ <![CDATA[Creates a splash screen. The splash screen is displayed
+ for the duration of the build and includes a handy progress bar as
+ well. Use in conjunction with the sound task to provide interest
+ whilst waiting for your builds to complete...]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="imageurl" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[A URL pointing to an image to display; optional, default antlogo.gif
+ from the classpath.]]></short-description>
+ <description><![CDATA[
+ A URL pointing to an image to display; optional, default antlogo.gif
+ from the classpath.
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Proxy password; required if <tt>user</tt> is set.]]></short-description>
+ <description><![CDATA[
+ Proxy password; required if <tt>user</tt> is set.
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Proxy port; optional, default 80.]]></short-description>
+ <description><![CDATA[
+ Proxy port; optional, default 80.
+ ]]></description>
+ </attribute>
+ <attribute name="proxy" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of proxy; optional.]]></short-description>
+ <description><![CDATA[
+ name of proxy; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="showduration" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[How long to show the splash screen in milliseconds,
+ optional; default 5000 ms.]]></short-description>
+ <description><![CDATA[
+ how long to show the splash screen in milliseconds,
+ optional; default 5000 ms.
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Proxy user; optional, default =none.]]></short-description>
+ <description><![CDATA[
+ Proxy user; optional, default =none.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="sql" category="database"
+ classname="org.apache.tools.ant.taskdefs.SQLExec"
+ >
+
+ <short-description><![CDATA[Executes a series of SQL statements on a database using JDBC.]]></short-description>
+ <description>
+ <![CDATA[Executes a series of SQL statements on a database using JDBC.
+
+ <p>Statements can
+ either be read in from a text file using the <i>src</i> attribute or from
+ between the enclosing SQL tags.</p>
+ <p>Multiple statements can be provided, separated by semicolons (or the
+ defined <i>delimiter</i>). Individual lines within the statements can be
+ commented using either --, // or REM at the start of the line.</p>
+ <p>The <i>autocommit</i> attribute specifies whether auto-commit should be
+ turned on or off whilst executing the statements. If auto-commit is turned
+ on each statement will be executed and committed. If it is turned off the
+ statements will all be executed as one transaction.</p>
+ <p>The <i>onerror</i> attribute specifies how to proceed when an error occurs
+ during the execution of one of the statements.
+ The possible values are: <b>continue</b> execution, only show the error;
+ <b>stop</b> execution and commit transaction;
+ and <b>abort</b> execution and transaction and fail task.</p>]]>
+ </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="autocommit" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Auto commit flag for database connection;
+ optional, default false.]]></short-description>
+ <description><![CDATA[
+ Auto commit flag for database connection;
+ optional, default false.
+ ]]></description>
+ </attribute>
+ <attribute name="caching" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Caching loaders / driver.]]></short-description>
+ <description><![CDATA[
+ Caching loaders / driver. This is to avoid
+ getting an OutOfMemoryError when calling this task
+ multiple times in a row; default: true
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath for loading the driver.]]></short-description>
+ <description><![CDATA[
+ Sets the classpath for loading the driver.
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Classpath for loading the driver
+ using the classpath reference.]]></short-description>
+ <description><![CDATA[
+ Set the classpath for loading the driver
+ using the classpath reference.
+ ]]></description>
+ </attribute>
+ <attribute name="delimiter" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Delimiter that separates SQL statements;
+ optional, default &quot;;&quot;
+
+ <p>For example, set this to "go" and delimitertype to "ROW" for
+ Sybase ASE or MS SQL Server.</p>.]]></short-description>
+ <description><![CDATA[
+ Set the delimiter that separates SQL statements;
+ optional, default &quot;;&quot;
+
+ <p>For example, set this to "go" and delimitertype to "ROW" for
+ Sybase ASE or MS SQL Server.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="delimitertype" type="org.apache.tools.ant.taskdefs.SQLExec.DelimiterType"
+ briefType="&quot;normal&quot;, &quot;row&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Delimiter type: "normal" or "row" (default "normal").]]></short-description>
+ <description><![CDATA[
+ Set the delimiter type: "normal" or "row" (default "normal").
+
+ <p>The delimiter type takes two values - normal and row. Normal
+ means that any occurence of the delimiter terminate the SQL
+ command whereas with row, only a line containing just the
+ delimiter is recognized as the end of the command.</p>
+ ]]></description>
+ </attribute>
+ <attribute name="driver" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Class name of the JDBC driver; required.]]></short-description>
+ <description><![CDATA[
+ Class name of the JDBC driver; required.
+ ]]></description>
+ </attribute>
+ <attribute name="encoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[File encoding to use on the SQL files read in.]]></short-description>
+ <description><![CDATA[
+ Set the file encoding to use on the SQL files read in
+ ]]></description>
+ </attribute>
+ <attribute name="onerror" type="org.apache.tools.ant.taskdefs.SQLExec.OnError"
+ briefType="&quot;continue&quot;, &quot;stop&quot;, &quot;abort&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Action to perform when statement fails: continue, stop, or abort
+ optional; default &quot;abort&quot;.]]></short-description>
+ <description><![CDATA[
+ Action to perform when statement fails: continue, stop, or abort
+ optional; default &quot;abort&quot;
+ ]]></description>
+ </attribute>
+ <attribute name="output" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Output file;
+ optional, defaults to the Ant log.]]></short-description>
+ <description><![CDATA[
+ Set the output file;
+ optional, defaults to the Ant log.
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Password; required.]]></short-description>
+ <description><![CDATA[
+ Sets the password; required.
+ ]]></description>
+ </attribute>
+ <attribute name="print" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Print result sets from the statements;
+ optional, default false.]]></short-description>
+ <description><![CDATA[
+ Print result sets from the statements;
+ optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="rdbms" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Execute task only if the lower case product name
+ of the DB matches this.]]></short-description>
+ <description><![CDATA[
+ Execute task only if the lower case product name
+ of the DB matches this
+ ]]></description>
+ </attribute>
+ <attribute name="showheaders" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Print headers for result sets from the
+ statements; optional, default true.]]></short-description>
+ <description><![CDATA[
+ Print headers for result sets from the
+ statements; optional, default true.
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the SQL file to be run.]]></short-description>
+ <description><![CDATA[
+ Set the name of the SQL file to be run.
+ Required unless statements are enclosed in the buildfile
+ ]]></description>
+ </attribute>
+ <attribute name="url" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Database connection URL; required.]]></short-description>
+ <description><![CDATA[
+ Sets the database connection URL; required.
+ ]]></description>
+ </attribute>
+ <attribute name="userid" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[User name for the connection; required.]]></short-description>
+ <description><![CDATA[
+ Set the user name for the connection; required.
+ ]]></description>
+ </attribute>
+ <attribute name="version" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Version string, execute task only if
+ rdbms version match; optional.]]></short-description>
+ <description><![CDATA[
+ Sets the version string, execute task only if
+ rdbms version match; optional.
+ ]]></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 (nested fileset attribute).]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files (nested fileset attribute).]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a path to the classpath for loading the driver.]]></short-description>
+ <description>
+ <![CDATA[Add a path to the classpath for loading the driver.]]>
+ </description>
+ </element>
+
+ <element name="transaction" type="org.apache.tools.ant.taskdefs.SQLExec.Transaction"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a SQL transaction to execute.]]></short-description>
+ <description>
+ <![CDATA[Add a SQL transaction to execute]]>
+ </description>
+ </element>
+
+ </elements>
+
+ <body >
+ <description><![CDATA[
+ Set an inline SQL command to execute.
+ NB: Properties are not expanded in this text.
+ ]]></description>
+ </body>
+
+ </structure>
+
+</task>
+
+
+<task name="stylebook" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.StyleBook"
+ >
+
+ <short-description><![CDATA[Executes the Apache Stylebook documentation generator.]]></short-description>
+ <description>
+ <![CDATA[Executes the Apache Stylebook documentation generator.
+ Unlike the commandline version of this tool, all three arguments
+ are required to run stylebook.
+ <p>
+ Being extended from &lt;Java&gt;, all the parent's attributes
+ and options are available. Do not set any apart from the <tt>classpath</tt>
+ as they are not guaranteed to be there in future.]]>
+ </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="book" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The book xml file that the documentation generation starts from;
+ required.]]></short-description>
+ <description><![CDATA[
+ The book xml file that the documentation generation starts from;
+ required.
+ ]]></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="loaderconfig" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[A loader configuration to send to stylebook; optional.]]></short-description>
+ <description><![CDATA[
+ A loader configuration to send to stylebook; optional.
+ ]]></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="skindirectory" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The directory that contains the stylebook skin;
+ required.]]></short-description>
+ <description><![CDATA[
+ the directory that contains the stylebook skin;
+ required.
+ ]]></description>
+ </attribute>
+ <attribute name="targetdirectory" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The destination directory where the documentation is generated;
+ required.]]></short-description>
+ <description><![CDATA[
+ the destination directory where the documentation is generated;
+ required.
+ ]]></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="tar" category="packaging"
+ classname="org.apache.tools.ant.taskdefs.Tar"
+ matchingTask="true">
+
+ <!-- tar task -->
+<external>
+<description>
+<p>Creates a tar archive.</p>
+
+<p>The <i>basedir</i> attribute is the reference directory from where to tar.</p>
+
+<p>This task is a <a href="../dirtasks.html#directorybasedtasks">directory based task</a>
+and, as such, forms an implicit <a href="../CoreTypes/fileset.html">Fileset</a>. This
+defines which files, relative to the <i>basedir</i>, will be included in the
+archive. The tar task supports all the attributes of Fileset to refine the
+set of files to be included in the implicit fileset.</p>
+
+<p>In addition to the implicit fileset, the tar task supports nested filesets. These
+filesets are extended to allow control over the access mode, username and groupname
+to be applied to the tar entries. This is useful, for example, when preparing archives for
+Unix systems where some files need to have execute permission.</p>
+
+<p>Early versions of tar did not support path lengths greater than 100
+characters. Modern versions of tar do so, but in incompatible ways.
+The behaviour of the tar task when it encounters such paths is
+controlled by the <i>longfile</i> attribute.
+If the longfile attribute is set to <code>fail</code>, any long paths will
+cause the tar task to fail. If the longfile attribute is set to
+<code>truncate</code>, any long paths will be truncated to the 100 character
+maximum length prior to adding to the archive. If the value of the longfile
+attribute is set to <code>omit</code> then files containing long paths will be
+omitted from the archive. Either option ensures that the archive can be
+untarred by any compliant version of tar. If the loss of path or file
+information is not acceptable, and it rarely is, longfile may be set to the
+value <code>gnu</code>. The tar task will then produce a GNU tar file which
+can have arbitrary length paths. Note however, that the resulting archive will
+only be able to be untarred with GNU tar. The default for the longfile
+attribute is <code>warn</code> which behaves just like the gnu option except
+that it produces a warning for each file path encountered that does not match
+the limit.</p>
+
+<p>Note that this task does not perform compression. You might want to use the
+<a href="gzip.html">GZip</a> task to prepare a .tar.gz package.</p>
+</description>
+
+<section anchor="examples" name="Examples">
+<pre> &lt;tar tarfile=&quot;${dist}/manual.tar&quot; basedir=&quot;htdocs/manual&quot;/&gt;
+ &lt;gzip zipfile=&quot;${dist}/manual.tar.gz&quot; src=&quot;${dist}/manual.tar&quot;/&gt;</pre>
+<p>tars all files in the <code>htdocs/manual</code> directory into a file called <code>manual.tar</code>
+in the <code>${dist}</code> directory, then applies the gzip task to compress
+it.</p>
+<pre> &lt;tar destfile=&quot;${dist}/manual.tar&quot;
+ basedir=&quot;htdocs/manual&quot;
+ excludes=&quot;mydocs/**, **/todo.html&quot;
+ /&gt;</pre>
+<p>tars all files in the <code>htdocs/manual</code> directory into a file called <code>manual.tar</code>
+in the <code>${dist}</code> directory. Files in the directory <code>mydocs</code>,
+or files with the name <code>todo.html</code> are excluded.</p>
+
+<pre>
+&lt;tar destfile=&quot;${basedir}/docs.tar&quot;&gt;
+ &lt;tarfileset dir=&quot;${dir.src}/docs&quot;
+ fullpath=&quot;/usr/doc/ant/README&quot;
+ preserveLeadingSlashes=&quot;true&quot;&gt;
+ &lt;include name=&quot;readme.txt&quot;/&gt;
+ &lt;/tarfileset&gt;
+ &lt;tarfileset dir=&quot;${dir.src}/docs&quot;
+ prefix=&quot;/usr/doc/ant&quot;
+ preserveLeadingSlashes=&quot;true&quot;&gt;
+ &lt;include name=&quot;*.html&quot;/&gt;
+ &lt;/tarfileset&gt;
+&lt;/tar&gt;</pre>
+
+<p>
+ Writes the file <code>docs/readme.txt</code> as
+ <code>/usr/doc/ant/README</code> into the archive. All
+ <code>*.html</code> files in the <code>docs</code> directory are
+ prefixed by <code>/usr/doc/ant</code>, so for example
+ <code>docs/index.html</code> is written as
+ <code>/usr/doc/ant/index.html</code> to the archive.
+</p>
+
+<pre>&lt;tar longfile=&quot;gnu&quot;
+ destfile=&quot;${dist.base}/${dist.name}-src.tar&quot; &gt;
+ &lt;tarfileset dir=&quot;${dist.name}/..&quot; mode=&quot;755&quot; username=&quot;ant&quot; group=&quot;ant&quot;&gt;
+ &lt;include name=&quot;${dist.name}/bootstrap.sh&quot;/&gt;
+ &lt;include name=&quot;${dist.name}/build.sh&quot;/&gt;
+ &lt;/tarfileset&gt;
+ &lt;tarfileset dir=&quot;${dist.name}/..&quot; username=&quot;ant&quot; group=&quot;ant&quot;&gt;
+ &lt;include name=&quot;${dist.name}/**&quot;/&gt;
+ &lt;exclude name=&quot;${dist.name}/bootstrap.sh&quot;/&gt;
+ &lt;exclude name=&quot;${dist.name}/build.sh&quot;/&gt;
+ &lt;/tarfileset&gt;
+&lt;/tar&gt; </pre>
+
+<p>This example shows building a tar which uses the GNU extensions for long paths and
+where some files need to be marked as executable (mode 755)
+and the rest are use the default mode (read-write by owner). The first
+fileset selects just the executable files. The second fileset must exclude
+the executable files and include all others. </p>
+
+<p><strong>Note: </strong> The tar task does not ensure that a file is only selected
+by one fileset. If the same file is selected by more than one fileset, it will be included in the
+tar file twice, with the same path.</p>
+
+<p><strong>Note:</strong> The patterns in the include and exclude
+elements are considered to be relative to the corresponding dir
+attribute as with all other filesets. In the example above,
+<code>${dist.name}</code> is not an absolute path, but a simple name
+of a directory, so <code>${dist.name}</code> is a valid path relative
+to <code>${dist.name}/..</code>.</p>
+
+</section>
+</external>
+
+ <short-description><![CDATA[Creates a tar archive.]]></short-description>
+ <description>
+ <![CDATA[Creates a tar archive.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="basedir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[This is the base directory to look in for things to tar.]]></short-description>
+ <description><![CDATA[
+ This is the base directory to look in for things to tar.
+ ]]></description>
+ </attribute>
+ <attribute name="compression" type="org.apache.tools.ant.taskdefs.Tar.TarCompressionMethod"
+ briefType="&quot;none&quot;, &quot;gzip&quot;, &quot;bzip2&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Set compression method.]]></short-description>
+ <description><![CDATA[
+ Set compression method.
+ Allowable values are
+ <ul>
+ <li> none - no compression
+ <li> gzip - Gzip compression
+ <li> bzip2 - Bzip2 compression
+ </ul>
+ ]]></description>
+ </attribute>
+ <attribute name="destfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Set is the name/location of where to create the tar file.]]></short-description>
+ <description><![CDATA[
+ Set is the name/location of where to create the tar file.
+ ]]></description>
+ </attribute>
+ <attribute name="longfile" type="org.apache.tools.ant.taskdefs.Tar.TarLongFileMode"
+ briefType="&quot;warn&quot;, &quot;fail&quot;, &quot;truncate&quot;, &quot;gnu&quot;, &quot;omit&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Set how to handle long files, those with a path&gt;100 chars.]]></short-description>
+ <description><![CDATA[
+ Set how to handle long files, those with a path&gt;100 chars.
+ Optional, default=warn.
+ <p>
+ Allowable values are
+ <ul>
+ <li> truncate - paths are truncated to the maximum length
+ <li> fail - paths greater than the maximim cause a build exception
+ <li> warn - paths greater than the maximum cause a warning and GNU is used
+ <li> gnu - GNU extensions are used for any paths greater than the maximum.
+ <li> omit - paths greater than the maximum are omitted from the archive
+ </ul>
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="tarfileset" type="org.apache.tools.ant.taskdefs.Tar.TarFileSet"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a new fileset with the option to specify permissions.]]></short-description>
+ <description>
+ <![CDATA[Add a new fileset with the option to specify permissions]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="taskdef" category="internal"
+ classname="org.apache.tools.ant.taskdefs.Taskdef"
+ >
+
+ <short-description><![CDATA[Adds a task definition to the current project, such that this new task can be used in the current project.]]></short-description>
+ <description>
+ <![CDATA[Adds a task definition to the current project, such that this new task can be
+ used in the current project. Two attributes are needed, the name that identifies
+ this task uniquely, and the full name of the class (including the packages) that
+ implements this task.</p>
+ <p>You can also define a group of tasks at once using the file or
+ resource attributes. These attributes point to files in the format of
+ Java property files. Each line defines a single task in the
+ format:</p>
+ <pre>
+ taskname=fully.qualified.java.classname
+ </pre>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="classname" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The full class name of the object being defined.]]></short-description>
+ <description><![CDATA[
+ the full class name of the object being defined.
+ Required, unless file or resource have
+ been specified.
+ ]]></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 component being defined.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used when searching for component being defined
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Reference to a classpath to use when loading the files.]]></short-description>
+ <description><![CDATA[
+ reference to a classpath to use when loading the files.
+ To actually share the same loader, set loaderref as well
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the property file to load
+ ant name/classname pairs from.]]></short-description>
+ <description><![CDATA[
+ Name of the property file to load
+ ant name/classname pairs from.
+ ]]></description>
+ </attribute>
+ <attribute name="loaderref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Use the reference to locate the loader.]]></short-description>
+ <description><![CDATA[
+ Use the reference to locate the loader. If the loader is not
+ found, taskdef will use the specified classpath and register it
+ with the specified name.
+ This allow multiple taskdef/typedef to use the same class loader,
+ so they can be used together. It eliminate the need to
+ put them in the CLASSPATH.
+ ]]></description>
+ </attribute>
+ <attribute name="name" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the property resource to load
+ ant name/classname pairs from.]]></short-description>
+ <description><![CDATA[
+ Name of the property resource to load
+ ant name/classname pairs from.
+ ]]></description>
+ </attribute>
+ <attribute name="resource" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the property resource to load
+ ant name/classname pairs from.]]></short-description>
+ <description><![CDATA[
+ Name of the property resource to load
+ ant name/classname pairs from.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create the classpath to be used when searching for component being defined.]]></short-description>
+ <description>
+ <![CDATA[Create the classpath to be used when searching for component being defined]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="telnet" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.net.TelnetTask"
+ >
+
+ <short-description><![CDATA[Automates the telnet protocol.]]></short-description>
+ <description>
+ <![CDATA[Automates the telnet protocol.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="initialcr" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Send a carriage return after connecting; optional, defaults to false.]]></short-description>
+ <description><![CDATA[
+ send a carriage return after connecting; optional, defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The login password to use
+ required if <tt>userid</tt> is set.]]></short-description>
+ <description><![CDATA[
+ Set the the login password to use
+ required if <tt>userid</tt> is set.
+ ]]></description>
+ </attribute>
+ <attribute name="port" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Tcp port to connect to; default is 23.]]></short-description>
+ <description><![CDATA[
+ Set the tcp port to connect to; default is 23.
+ ]]></description>
+ </attribute>
+ <attribute name="server" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Hostname or address of the remote server.]]></short-description>
+ <description><![CDATA[
+ Set the hostname or address of the remote server.
+ ]]></description>
+ </attribute>
+ <attribute name="timeout" type="java.lang.Integer"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Default timeout in seconds to wait for a response,
+ zero means forever (the default).]]></short-description>
+ <description><![CDATA[
+ set a default timeout in seconds to wait for a response,
+ zero means forever (the default)
+ ]]></description>
+ </attribute>
+ <attribute name="userid" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The login id to use on the server;
+ required if <tt>password</tt> is set.]]></short-description>
+ <description><![CDATA[
+ Set the the login id to use on the server;
+ required if <tt>password</tt> is set.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="read" type="org.apache.tools.ant.taskdefs.optional.net.TelnetTask.TelnetSubTask"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[A string to wait for from the server.]]></short-description>
+ <description>
+ <![CDATA[A string to wait for from the server.
+ A subTask &lt;read&gt; tag was found. Create the object,
+ Save it in our list, and return it.]]>
+ </description>
+ </element>
+
+ <element name="write" type="org.apache.tools.ant.taskdefs.optional.net.TelnetTask.TelnetSubTask"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add text to send to the server
+ A subTask &lt;write&gt; tag was found.]]></short-description>
+ <description>
+ <![CDATA[Add text to send to the server
+ A subTask &lt;write&gt; tag was found. Create the object,
+ Save it in our list, and return it.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="tempfile" category="other"
+ classname="org.apache.tools.ant.taskdefs.TempFile"
+ >
+
+ <short-description><![CDATA[This task sets a property to the name of a temporary file.]]></short-description>
+ <description>
+ <![CDATA[This task sets a property to the name of a temporary file.
+ Unlike the Java1.2 method to create a temporary file, this task
+ does work on Java1.1. Also, it does not actually create the
+ temporary file, but it does guarantee that the file did not
+ exist when the task was executed.
+ <p>
+ Examples
+ <pre>&lt;tempfile property="temp.file" /&gt;</pre>
+ create a temporary file
+ <pre>&lt;tempfile property="temp.file" suffix=".xml" /&gt;</pre>
+ create a temporary file with the .xml suffix.
+ <pre>&lt;tempfile property="temp.file" destDir="build"/&gt;</pre>
+ create a temp file in the build subdir]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="destdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory.]]></short-description>
+ <description><![CDATA[
+ destination directory. If null,
+the parent directory is used instead
+ ]]></description>
+ </attribute>
+ <attribute name="prefix" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Optional prefix string.]]></short-description>
+ <description><![CDATA[
+ optional prefix string
+ ]]></description>
+ </attribute>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The property you wish to assign the temporary file to.]]></short-description>
+ <description><![CDATA[
+ The property you wish to assign the temporary file to
+ ]]></description>
+ </attribute>
+ <attribute name="suffix" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Suffix string for the temp file (optional).]]></short-description>
+ <description><![CDATA[
+ Suffix string for the temp file (optional)
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="touch" category="filesystem"
+ classname="org.apache.tools.ant.taskdefs.Touch"
+ >
+
+ <short-description><![CDATA[Touch a file and/or fileset(s); corresponds to the Unix touch command.]]></short-description>
+ <description>
+ <![CDATA[Touch a file and/or fileset(s); corresponds to the Unix touch command.
+
+ <p>If the file to touch doesn't exist, an empty one is
+ created. </p>
+
+ <p>Note: Setting the modification time of files is not supported in
+ JDK 1.1.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="datetime" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The new modification time of the file
+ in the format MM/DD/YYYY HH:MM AM <i>or</i> PM;
+ Optional, default=now.]]></short-description>
+ <description><![CDATA[
+ the new modification time of the file
+ in the format MM/DD/YYYY HH:MM AM <i>or</i> PM;
+ Optional, default=now
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Single source file to touch.]]></short-description>
+ <description><![CDATA[
+ Sets a single source file to touch. If the file does not exist
+ an empty file will be created.
+ ]]></description>
+ </attribute>
+ <attribute name="millis" type="long"
+ briefType="long" required="NOTDEFINED">
+ <short-description><![CDATA[The new modification time of the file
+ in milliseconds since midnight Jan 1 1970.]]></short-description>
+ <description><![CDATA[
+ the new modification time of the file
+ in milliseconds since midnight Jan 1 1970.
+ Optional, default=now
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a set of files to touch.]]></short-description>
+ <description>
+ <![CDATA[Add a set of files to touch]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="translate" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.i18n.Translate"
+ matchingTask="true">
+
+ <short-description><![CDATA[Translates text embedded in files using Resource Bundle files.]]></short-description>
+ <description>
+ <![CDATA[Translates text embedded in files using Resource Bundle files.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="bundle" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets Family name of resource bundle; required.]]></short-description>
+ <description><![CDATA[
+ Sets Family name of resource bundle; required.
+ ]]></description>
+ </attribute>
+ <attribute name="bundlecountry" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets locale specific country of resource bundle; optional.]]></short-description>
+ <description><![CDATA[
+ Sets locale specific country of resource bundle; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="bundleencoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets Resource Bundle file encoding scheme; optional.]]></short-description>
+ <description><![CDATA[
+ Sets Resource Bundle file encoding scheme; optional. Defaults to source file
+ encoding
+ ]]></description>
+ </attribute>
+ <attribute name="bundlelanguage" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets locale specific language of resource bundle; optional.]]></short-description>
+ <description><![CDATA[
+ Sets locale specific language of resource bundle; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="bundlevariant" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets locale specific variant of resource bundle; optional.]]></short-description>
+ <description><![CDATA[
+ Sets locale specific variant of resource bundle; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="destencoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets destination file encoding scheme; optional.]]></short-description>
+ <description><![CDATA[
+ Sets destination file encoding scheme; optional. Defaults to source file
+ encoding
+ ]]></description>
+ </attribute>
+ <attribute name="endtoken" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets ending token to identify keys; required.]]></short-description>
+ <description><![CDATA[
+ Sets ending token to identify keys; required.
+ ]]></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 as well as the
+ resource bundle file.]]></short-description>
+ <description><![CDATA[
+ Whether or not to overwrite existing file irrespective of
+ whether it is newer than the source file as well as the
+ resource bundle file.
+ Defaults to false.
+ ]]></description>
+ </attribute>
+ <attribute name="srcencoding" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets source file encoding scheme; optional,
+ defaults to encoding of local system.]]></short-description>
+ <description><![CDATA[
+ Sets source file encoding scheme; optional,
+ defaults to encoding of local system.
+ ]]></description>
+ </attribute>
+ <attribute name="starttoken" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Sets starting token to identify keys; required.]]></short-description>
+ <description><![CDATA[
+ Sets starting token to identify keys; required.
+ ]]></description>
+ </attribute>
+ <attribute name="todir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Sets Destination directory; required.]]></short-description>
+ <description><![CDATA[
+ Sets Destination directory; required.
+ ]]></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 translate as a nested fileset element.]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files to translate as a nested fileset element.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="tstamp" category="utility"
+ classname="org.apache.tools.ant.taskdefs.Tstamp"
+ >
+
+ <short-description><![CDATA[Sets properties to the current time, or offsets from the current time.]]></short-description>
+ <description>
+ <![CDATA[Sets properties to the current time, or offsets from the current time.
+ The default properties are TSTAMP, DSTAMP and TODAY;]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="prefix" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Prefix for the properties.]]></short-description>
+ <description><![CDATA[
+ Set a prefix for the properties. If the prefix does not end with a "."
+ one is automatically added
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="format" type="org.apache.tools.ant.taskdefs.Tstamp.CustomFormat"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create a custom format with the the current prefix.]]></short-description>
+ <description>
+ <![CDATA[create a custom format with the the current prefix.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="typedef" category="internal"
+ classname="org.apache.tools.ant.taskdefs.Typedef"
+ >
+
+ <short-description><![CDATA[Adds a data type definition to the current project.]]></short-description>
+ <description>
+ <![CDATA[Adds a data type definition to the current project.
+ Two attributes are
+ needed, the name that identifies this data type uniquely, and the full
+ name of the class (including the packages) that implements this
+ type.
+ <p>You can also define a group of data types at once using the file or
+ resource attributes. These attributes point to files in the format of
+ Java property files. Each line defines a single data type in the
+ format:</p>
+ <pre>
+ typename=fully.qualified.java.classname
+ </pre>
+ <p>Typedef should be used to add your own types to the system. Data
+ types are things likepaths or filesets that can be defined at
+ the project level and referenced via their ID attribute.</p>
+ <p>Custom data types usually need custom tasks to put them to good use.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="classname" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The full class name of the object being defined.]]></short-description>
+ <description><![CDATA[
+ the full class name of the object being defined.
+ Required, unless file or resource have
+ been specified.
+ ]]></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 component being defined.]]></short-description>
+ <description><![CDATA[
+ Set the classpath to be used when searching for component being defined
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Reference to a classpath to use when loading the files.]]></short-description>
+ <description><![CDATA[
+ reference to a classpath to use when loading the files.
+ To actually share the same loader, set loaderref as well
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the property file to load
+ ant name/classname pairs from.]]></short-description>
+ <description><![CDATA[
+ Name of the property file to load
+ ant name/classname pairs from.
+ ]]></description>
+ </attribute>
+ <attribute name="loaderref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Use the reference to locate the loader.]]></short-description>
+ <description><![CDATA[
+ Use the reference to locate the loader. If the loader is not
+ found, taskdef will use the specified classpath and register it
+ with the specified name.
+ This allow multiple taskdef/typedef to use the same class loader,
+ so they can be used together. It eliminate the need to
+ put them in the CLASSPATH.
+ ]]></description>
+ </attribute>
+ <attribute name="name" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the property resource to load
+ ant name/classname pairs from.]]></short-description>
+ <description><![CDATA[
+ Name of the property resource to load
+ ant name/classname pairs from.
+ ]]></description>
+ </attribute>
+ <attribute name="resource" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the property resource to load
+ ant name/classname pairs from.]]></short-description>
+ <description><![CDATA[
+ Name of the property resource to load
+ ant name/classname pairs from.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create the classpath to be used when searching for component being defined.]]></short-description>
+ <description>
+ <![CDATA[Create the classpath to be used when searching for component being defined]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="untar" category="packaging"
+ classname="org.apache.tools.ant.taskdefs.Untar"
+ >
+
+ <short-description><![CDATA[Untar a file.]]></short-description>
+ <description>
+ <![CDATA[Untar a file.
+ <p>For JDK 1.1 &quot;last modified time&quot; field is set to current time instead of being
+ carried from the archive file.</p>
+ <p>PatternSets are used to select files to extract
+ <I>from</I> the archive. If no patternset is used, all files are extracted.
+ </p>
+ <p>FileSet>s may be used used to select archived files
+ to perform unarchival upon.
+ </p>
+ <p>File permissions will not be restored on extracted files.</p>
+ <p>The untar task recognizes the long pathname entries used by GNU tar.<p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="compression" type="org.apache.tools.ant.taskdefs.Untar.UntarCompressionMethod"
+ briefType="&quot;none&quot;, &quot;gzip&quot;, &quot;bzip2&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Set decompression algorithm to use; default=none.]]></short-description>
+ <description><![CDATA[
+ Set decompression algorithm to use; default=none.
+
+ Allowable values are
+ <ul>
+ <li>none - no compression
+ <li>gzip - Gzip compression
+ <li>bzip2 - Bzip2 compression
+ </ul>
+ ]]></description>
+ </attribute>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory. File will be unzipped into the
+ destination directory.
+ ]]></description>
+ </attribute>
+ <attribute name="overwrite" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Should we overwrite files in dest, even if they are newer than
+ the corresponding entries in the archive?.]]></short-description>
+ <description><![CDATA[
+ Should we overwrite files in dest, even if they are newer than
+ the corresponding entries in the archive?
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Path to zip-file.]]></short-description>
+ <description><![CDATA[
+ Set the path to zip-file.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a fileset.]]></short-description>
+ <description>
+ <![CDATA[Add a fileset]]>
+ </description>
+ </element>
+
+ <element name="patternset" type="org.apache.tools.ant.types.PatternSet"
+ briefType="Patternset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a patternset.]]></short-description>
+ <description>
+ <![CDATA[Add a patternset]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="unzip" category="packaging"
+ classname="org.apache.tools.ant.taskdefs.Expand"
+ >
+
+ <short-description><![CDATA[Unzip a file.]]></short-description>
+ <description>
+ <![CDATA[Unzip a file.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory. File will be unzipped into the
+ destination directory.
+ ]]></description>
+ </attribute>
+ <attribute name="overwrite" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Should we overwrite files in dest, even if they are newer than
+ the corresponding entries in the archive?.]]></short-description>
+ <description><![CDATA[
+ Should we overwrite files in dest, even if they are newer than
+ the corresponding entries in the archive?
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Path to zip-file.]]></short-description>
+ <description><![CDATA[
+ Set the path to zip-file.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a fileset.]]></short-description>
+ <description>
+ <![CDATA[Add a fileset]]>
+ </description>
+ </element>
+
+ <element name="patternset" type="org.apache.tools.ant.types.PatternSet"
+ briefType="Patternset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a patternset.]]></short-description>
+ <description>
+ <![CDATA[Add a patternset]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="uptodate" category="control"
+ classname="org.apache.tools.ant.taskdefs.UpToDate"
+ >
+
+ <short-description><![CDATA[Sets the given property if the specified target has a timestamp greater than all of the source files.]]></short-description>
+ <description>
+ <![CDATA[Sets the given property if the specified target has a timestamp
+ greater than all of the source files.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="property" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The property to set if the target file is more up-to-date than
+ (each of) the source file(s).]]></short-description>
+ <description><![CDATA[
+ The property to set if the target file is more up-to-date than
+ (each of) the source file(s).
+ ]]></description>
+ </attribute>
+ <attribute name="srcfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file that must be older than the target file
+ if the property is to be set.]]></short-description>
+ <description><![CDATA[
+ The file that must be older than the target file
+ if the property is to be set.
+ ]]></description>
+ </attribute>
+ <attribute name="targetfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The file which must be more up-to-date than (each of) the source file(s)
+ if the property is to be set.]]></short-description>
+ <description><![CDATA[
+ The file which must be more up-to-date than (each of) the source file(s)
+ if the property is to be set.
+ ]]></description>
+ </attribute>
+ <attribute name="value" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The value to set the named property to if the target file is more
+ up-to-date than (each of) the source file(s).]]></short-description>
+ <description><![CDATA[
+ The value to set the named property to if the target file is more
+ up-to-date than (each of) the source file(s). Defaults to 'true'.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="srcfiles" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Nested &lt;srcfiles&gt; element.]]></short-description>
+ <description>
+ <![CDATA[Nested &lt;srcfiles&gt; element.]]>
+ </description>
+ </element>
+
+ <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="vajexport" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ide.VAJExport"
+ >
+
+ <short-description><![CDATA[Export packages from the Visual Age for Java workspace.]]></short-description>
+ <description>
+ <![CDATA[Export packages from the Visual Age for Java workspace.
+ The packages are specified similar to all other MatchingTasks.
+ Since the VA Workspace is not file based, this task is simulating
+ a directory hierarchy for the workspace:
+ The 'root' contains all project 'dir's, and the projects contain
+ their respective package 'dir's.
+ Example:
+ <blockquote>
+ &lt;vajexport destdir="C:/builddir/source">
+ &nbsp;&lt;include name="/MyVAProject/org/foo/subsystem1/**" />
+ &nbsp;&lt;exclude name="/MyVAProject/org/foo/subsystem1/test/**"/>
+ &lt;/vajexport>
+ </blockquote>
+ exports all packages in the project MyVAProject which start with
+ 'org.foo.subsystem1' except of these starting with
+ 'org.foo.subsystem1.test'.
+
+ There are flags to choose which items to export:
+ exportSources: export Java sources
+ exportResources: export project resources
+ exportClasses: export class files
+ exportDebugInfo: export class files with debug info (use with exportClasses)
+ default is exporting Java files and resources.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="defaultexcludes" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether default exclusions should be used or not; default true.]]></short-description>
+ <description><![CDATA[
+ Sets whether default exclusions should be used or not; default true.
+ ]]></description>
+ </attribute>
+ <attribute name="destdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory into which the selected
+ items should be exported; required.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory into which the selected
+ items should be exported; required.
+ ]]></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. Currently only patterns denoting packages are
+ supported
+ ]]></description>
+ </attribute>
+ <attribute name="exportclasses" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Optional flag to export the class files; default false.]]></short-description>
+ <description><![CDATA[
+ optional flag to export the class files; default false.
+ ]]></description>
+ </attribute>
+ <attribute name="exportdebuginfo" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Optional flag to export the debug info; default false.
+ debug info.]]></short-description>
+ <description><![CDATA[
+ optional flag to export the debug info; default false.
+ debug info
+ ]]></description>
+ </attribute>
+ <attribute name="exportresources" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Optional flag to export the resource file; default true.]]></short-description>
+ <description><![CDATA[
+ optional flag to export the resource file; default true.
+ ]]></description>
+ </attribute>
+ <attribute name="exportsources" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Optional flag to export the Java files; default true.]]></short-description>
+ <description><![CDATA[
+ optional flag to export the Java files; default true.
+ ]]></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. Currently only patterns denoting packages are
+ supported
+ ]]></description>
+ </attribute>
+ <attribute name="overwrite" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[If Overwrite is set, files will be overwritten during export.]]></short-description>
+ <description><![CDATA[
+ if Overwrite is set, files will be overwritten during export
+ ]]></description>
+ </attribute>
+ <attribute name="remote" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name and port of a remote tool server, optiona.]]></short-description>
+ <description><![CDATA[
+ Name and port of a remote tool server, optiona.
+ Format: &lt;servername&gt;:&lt;port no&gt;.
+ If this attribute is set, the tasks will be executed on the specified tool
+ server.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <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>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="vajimport" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ide.VAJImport"
+ >
+
+ <short-description><![CDATA[Import source, class files, and resources to the Visual Age for Java workspace.]]></short-description>
+ <description>
+ <![CDATA[Import source, class files, and resources to the Visual Age for Java
+ workspace.
+ <p>
+ Example:
+ <pre>
+ &lt;vajimport project="MyVAProject"&gt;
+ &lt;fileset dir="src"&gt;
+ &lt;include name="org/foo/subsystem1/**" /&gt;
+ &lt;exclude name="/org/foo/subsystem1/test/**" /&gt;
+ &lt;/fileset&gt;
+ &lt;/vajexport&gt;
+ </pre>
+ import all source and resource files from the "src" directory
+ which start with 'org.foo.subsystem1', except of these starting with
+ 'org.foo.subsystem1.test' into the project MyVAProject.
+ </p>
+ <p>If MyVAProject isn't loaded into the Workspace, a new edition is
+ created in the repository and automatically loaded into the Workspace.
+ There has to be at least one nested FileSet element.
+ </p>
+ <p>There are attributes to choose which items to export:
+ <table border="1" cellpadding="2" cellspacing="0">
+ <tr>
+ <td valign="top"><b>Attribute</b></td>
+ <td valign="top"><b>Description</b></td>
+ <td align="center" valign="top"><b>Required</b></td>
+ </tr>
+ <tr>
+ <td valign="top">project</td>
+ <td valign="top">the name of the Project to import to</td>
+ <td align="center" valign="top">Yes</td>
+ </tr>
+ <tr>
+ <td valign="top">importSources</td>
+ <td valign="top">import Java sources, defaults to "yes"</td>
+ <td align="center" valign="top">No</td>
+ </tr>
+ <tr>
+ <td valign="top">importResources</td>
+ <td valign="top">import resource files (anything that doesn't
+ end with .java or .class), defaults to "yes"</td>
+ <td align="center" valign="top">No</td>
+ </tr>
+ <tr>
+ <td valign="top">importClasses</td>
+ <td valign="top">import class files, defaults to "no"</td>
+ <td align="center" valign="top">No</td>
+ </tr>
+ </table>]]>
+ </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="importclasses" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to import .class files; optional, default false.]]></short-description>
+ <description><![CDATA[
+ Flag to import .class files; optional, default false.
+ ]]></description>
+ </attribute>
+ <attribute name="importresources" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Import resource files (anything that doesn't end in
+ .class or .java); optional, default true.]]></short-description>
+ <description><![CDATA[
+ Import resource files (anything that doesn't end in
+ .class or .java); optional, default true.
+ ]]></description>
+ </attribute>
+ <attribute name="importsources" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Import .java files; optional, default true.]]></short-description>
+ <description><![CDATA[
+ Import .java files; optional, default true.
+ ]]></description>
+ </attribute>
+ <attribute name="project" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The VisualAge for Java Project name to import into.]]></short-description>
+ <description><![CDATA[
+ The VisualAge for Java Project name to import into.
+ ]]></description>
+ </attribute>
+ <attribute name="remote" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name and port of a remote tool server, optiona.]]></short-description>
+ <description><![CDATA[
+ Name and port of a remote tool server, optiona.
+ Format: &lt;servername&gt;:&lt;port no&gt;.
+ If this attribute is set, the tasks will be executed on the specified tool
+ server.
+ ]]></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 (nested fileset attribute).]]></short-description>
+ <description>
+ <![CDATA[Adds a set of files (nested fileset attribute).]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="vajload" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ide.VAJLoad"
+ >
+
+ <short-description><![CDATA[Load specific project versions into the Visual Age for Java workspace.]]></short-description>
+ <description>
+ <![CDATA[Load specific project versions into the Visual Age for Java workspace.
+ Each project and version name has to be specified completely.
+ Example:
+ <blockquote>
+ &lt;vajload>
+ &nbsp;&lt;project name="MyVAProject" version="2.1"/>
+ &nbsp;&lt;project name="Apache Xerces" version="1.2.0"/>
+ &lt;/vajload>
+ </blockquote>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="remote" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name and port of a remote tool server, optiona.]]></short-description>
+ <description><![CDATA[
+ Name and port of a remote tool server, optiona.
+ Format: &lt;servername&gt;:&lt;port no&gt;.
+ If this attribute is set, the tasks will be executed on the specified tool
+ server.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="vajproject" type="org.apache.tools.ant.taskdefs.optional.ide.VAJProjectDescription"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add a project description entry on the project list.]]></short-description>
+ <description>
+ <![CDATA[Add a project description entry on the project list.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="vssadd" category="scm"
+ classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSADD"
+ >
+
+ <short-description><![CDATA[Performs Add commands to Microsoft Visual SourceSafe.]]></short-description>
+ <description>
+ <![CDATA[Performs Add commands to Microsoft Visual SourceSafe.
+ Based on the VSS Checkin code by Martin Poeschl]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="autoresponse" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[What to respond with (sets the -I option).]]></short-description>
+ <description><![CDATA[
+ What to respond with (sets the -I option). By default, -I- is
+ used; values of Y or N will be appended to this.
+ ]]></description>
+ </attribute>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Comment to apply; optional.]]></short-description>
+ <description><![CDATA[
+ Sets the comment to apply; optional.
+ <p>
+ If this is null or empty, it will be replaced with "-" which
+ is what SourceSafe uses for an empty comment.
+ ]]></description>
+ </attribute>
+ <attribute name="localpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Local path.]]></short-description>
+ <description><![CDATA[
+ Set the local path.
+ ]]></description>
+ </attribute>
+ <attribute name="login" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The login to use when accessing VSS, formatted as "username,password";
+ optional.]]></short-description>
+ <description><![CDATA[
+ The login to use when accessing VSS, formatted as "username,password";
+ optional.
+ <p>
+ You can omit the password if your database is not password protected.
+ if you have a password and omit it, Ant/VSS will hang.
+ ]]></description>
+ </attribute>
+ <attribute name="recursive" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set behaviour recursive or non-recursive.]]></short-description>
+ <description><![CDATA[
+ Set behaviour recursive or non-recursive
+ ]]></description>
+ </attribute>
+ <attribute name="serverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>srssafe.ini</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ Set the directory where <code>srssafe.ini</code> resides; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="ssdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>ss.exe</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ directory where <code>ss.exe</code> resides; optional.
+ By default the task expects it to be in the PATH.
+ ]]></description>
+ </attribute>
+ <attribute name="vsspath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required.]]></short-description>
+ <description><![CDATA[
+ SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required. You should not specify the leading dollar-sign -
+ it is prepended by Ant automatically.
+ <p>
+ Ant can't cope with a '$' sign in an attribute so we have to add it here.
+ Also we strip off any 'vss://' prefix which is an XMS special and should probably be removed!
+ ]]></description>
+ </attribute>
+ <attribute name="writable" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Leave added files writable?.]]></short-description>
+ <description><![CDATA[
+ Leave added files writable? Default: false.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="vsscheckin" category="scm"
+ classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKIN"
+ >
+
+ <short-description><![CDATA[Performs CheckIn commands to Microsoft Visual SourceSafe.]]></short-description>
+ <description>
+ <![CDATA[Performs CheckIn commands to Microsoft Visual SourceSafe.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="autoresponse" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[What to respond with (sets the -I option).]]></short-description>
+ <description><![CDATA[
+ What to respond with (sets the -I option). By default, -I- is
+ used; values of Y or N will be appended to this.
+ ]]></description>
+ </attribute>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Comment to apply; optional.]]></short-description>
+ <description><![CDATA[
+ Set the comment to apply; optional.
+ <p>
+ If this is null or empty, it will be replaced with "-" which
+ is what SourceSafe uses for an empty comment.
+ ]]></description>
+ </attribute>
+ <attribute name="localpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Local path.]]></short-description>
+ <description><![CDATA[
+ Set the local path.
+ ]]></description>
+ </attribute>
+ <attribute name="login" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The login to use when accessing VSS, formatted as "username,password";
+ optional.]]></short-description>
+ <description><![CDATA[
+ The login to use when accessing VSS, formatted as "username,password";
+ optional.
+ <p>
+ You can omit the password if your database is not password protected.
+ if you have a password and omit it, Ant/VSS will hang.
+ ]]></description>
+ </attribute>
+ <attribute name="recursive" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to tell the task to recurse down the tree;
+ optional, default false.]]></short-description>
+ <description><![CDATA[
+ Flag to tell the task to recurse down the tree;
+ optional, default false.
+ ]]></description>
+ </attribute>
+ <attribute name="serverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>srssafe.ini</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ Set the directory where <code>srssafe.ini</code> resides; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="ssdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>ss.exe</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ directory where <code>ss.exe</code> resides; optional.
+ By default the task expects it to be in the PATH.
+ ]]></description>
+ </attribute>
+ <attribute name="vsspath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required.]]></short-description>
+ <description><![CDATA[
+ SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required. You should not specify the leading dollar-sign -
+ it is prepended by Ant automatically.
+ <p>
+ Ant can't cope with a '$' sign in an attribute so we have to add it here.
+ Also we strip off any 'vss://' prefix which is an XMS special and should probably be removed!
+ ]]></description>
+ </attribute>
+ <attribute name="writable" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Leave checked in files writable?.]]></short-description>
+ <description><![CDATA[
+ Leave checked in files writable? Default: false.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="vsscheckout" category="scm"
+ classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCHECKOUT"
+ >
+
+ <short-description><![CDATA[Performs CheckOut commands to Microsoft Visual SourceSafe.]]></short-description>
+ <description>
+ <![CDATA[Performs CheckOut commands to Microsoft Visual SourceSafe.
+ <p>If you specify two or more attributes from version, date and
+ label only one will be used in the order version, date, label.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="autoresponse" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[What to respond with (sets the -I option).]]></short-description>
+ <description><![CDATA[
+ What to respond with (sets the -I option). By default, -I- is
+ used; values of Y or N will be appended to this.
+ ]]></description>
+ </attribute>
+ <attribute name="date" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Date to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.]]></short-description>
+ <description><![CDATA[
+ Set the date to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.
+ ]]></description>
+ </attribute>
+ <attribute name="label" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Label to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.]]></short-description>
+ <description><![CDATA[
+ Set the label to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.
+ ]]></description>
+ </attribute>
+ <attribute name="localpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Local path.]]></short-description>
+ <description><![CDATA[
+ Set the local path.
+ ]]></description>
+ </attribute>
+ <attribute name="login" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The login to use when accessing VSS, formatted as "username,password";
+ optional.]]></short-description>
+ <description><![CDATA[
+ The login to use when accessing VSS, formatted as "username,password";
+ optional.
+ <p>
+ You can omit the password if your database is not password protected.
+ if you have a password and omit it, Ant/VSS will hang.
+ ]]></description>
+ </attribute>
+ <attribute name="recursive" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to tell the task to recurse down the tree;
+ optional, default false.]]></short-description>
+ <description><![CDATA[
+ Flag to tell the task to recurse down the tree;
+ optional, default false.
+ ]]></description>
+ </attribute>
+ <attribute name="serverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>srssafe.ini</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ Set the directory where <code>srssafe.ini</code> resides; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="ssdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>ss.exe</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ directory where <code>ss.exe</code> resides; optional.
+ By default the task expects it to be in the PATH.
+ ]]></description>
+ </attribute>
+ <attribute name="version" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Version to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.]]></short-description>
+ <description><![CDATA[
+ Set the version to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.
+ ]]></description>
+ </attribute>
+ <attribute name="vsspath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required.]]></short-description>
+ <description><![CDATA[
+ SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required. You should not specify the leading dollar-sign -
+ it is prepended by Ant automatically.
+ <p>
+ Ant can't cope with a '$' sign in an attribute so we have to add it here.
+ Also we strip off any 'vss://' prefix which is an XMS special and should probably be removed!
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="vsscp" category="scm"
+ classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCP"
+ >
+
+ <short-description><![CDATA[Performs CP (Change Project) commands to Microsoft Visual SourceSafe.]]></short-description>
+ <description>
+ <![CDATA[Performs CP (Change Project) commands to Microsoft Visual SourceSafe.
+ <p>This task is typically used before a VssAdd in order to set the target project</p>
+ Based on the VSS Checkin code by Martin Poeschl]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="autoresponse" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[What to respond with (sets the -I option).]]></short-description>
+ <description><![CDATA[
+ What to respond with (sets the -I option). By default, -I- is
+ used; values of Y or N will be appended to this.
+ ]]></description>
+ </attribute>
+ <attribute name="login" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The login to use when accessing VSS, formatted as "username,password";
+ optional.]]></short-description>
+ <description><![CDATA[
+ The login to use when accessing VSS, formatted as "username,password";
+ optional.
+ <p>
+ You can omit the password if your database is not password protected.
+ if you have a password and omit it, Ant/VSS will hang.
+ ]]></description>
+ </attribute>
+ <attribute name="serverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>srssafe.ini</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ Set the directory where <code>srssafe.ini</code> resides; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="ssdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>ss.exe</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ directory where <code>ss.exe</code> resides; optional.
+ By default the task expects it to be in the PATH.
+ ]]></description>
+ </attribute>
+ <attribute name="vsspath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required.]]></short-description>
+ <description><![CDATA[
+ SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required. You should not specify the leading dollar-sign -
+ it is prepended by Ant automatically.
+ <p>
+ Ant can't cope with a '$' sign in an attribute so we have to add it here.
+ Also we strip off any 'vss://' prefix which is an XMS special and should probably be removed!
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="vsscreate" category="scm"
+ classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSCREATE"
+ >
+
+ <short-description><![CDATA[Creates a new project in Microsoft Visual SourceSafe.]]></short-description>
+ <description>
+ <![CDATA[Creates a new project in Microsoft Visual SourceSafe.
+ <p>
+ The following attributes are interpreted:
+ <table border="1">
+ <tr>
+ <th>Attribute</th>
+ <th>Values</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>login</td>
+ <td>username,password</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>vsspath</td>
+ <td>SourceSafe path of project to be created</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>ssdir</td>
+ <td>directory where <code>ss.exe</code> resides. By default the task
+ expects it to be in the PATH.</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>quiet</td>
+ <td>suppress output (off by default)</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>failOnError</td>
+ <td>fail if there is an error creating the project (true by default)</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>autoresponse</td>
+ <td>What to respond with (sets the -I option). By default, -I- is
+ used; values of Y or N will be appended to this.</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>comment</td>
+ <td>The comment to use for this label. Empty or '-' for no comment.</td>
+ <td>No</td>
+ </tr>
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="autoresponse" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[What to respond with (sets the -I option).]]></short-description>
+ <description><![CDATA[
+ What to respond with (sets the -I option). By default, -I- is
+ used; values of Y or N will be appended to this.
+ ]]></description>
+ </attribute>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Comment to apply in SourceSafe.]]></short-description>
+ <description><![CDATA[
+ Sets the comment to apply in SourceSafe.
+ <p>
+ If this is null or empty, it will be replaced with "-" which
+ is what SourceSafe uses for an empty comment.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets whether task should fail if there is an error creating the project;
+ optional, default true.]]></short-description>
+ <description><![CDATA[
+ Sets whether task should fail if there is an error creating the project;
+ optional, default true.
+ ]]></description>
+ </attribute>
+ <attribute name="login" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The login to use when accessing VSS, formatted as "username,password";
+ optional.]]></short-description>
+ <description><![CDATA[
+ The login to use when accessing VSS, formatted as "username,password";
+ optional.
+ <p>
+ You can omit the password if your database is not password protected.
+ if you have a password and omit it, Ant/VSS will hang.
+ ]]></description>
+ </attribute>
+ <attribute name="quiet" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Sets/clears quiet mode; optional, default false.]]></short-description>
+ <description><![CDATA[
+ Sets/clears quiet mode; optional, default false.
+ ]]></description>
+ </attribute>
+ <attribute name="serverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>srssafe.ini</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ Set the directory where <code>srssafe.ini</code> resides; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="ssdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>ss.exe</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ directory where <code>ss.exe</code> resides; optional.
+ By default the task expects it to be in the PATH.
+ ]]></description>
+ </attribute>
+ <attribute name="vsspath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required.]]></short-description>
+ <description><![CDATA[
+ SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required. You should not specify the leading dollar-sign -
+ it is prepended by Ant automatically.
+ <p>
+ Ant can't cope with a '$' sign in an attribute so we have to add it here.
+ Also we strip off any 'vss://' prefix which is an XMS special and should probably be removed!
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="vssget" category="scm"
+ classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSGET"
+ >
+
+ <short-description><![CDATA[Perform Get commands to Microsoft Visual SourceSafe.]]></short-description>
+ <description>
+ <![CDATA[Perform Get commands to Microsoft Visual SourceSafe.
+ <p>
+ The following attributes are interpreted:
+ <table border="1">
+ <tr>
+ <th>Attribute</th>
+ <th>Values</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>login</td>
+ <td>username,password</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>vsspath</td>
+ <td>SourceSafe path</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>localpath</td>
+ <td>Override the working directory and get to the specified path</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>writable</td>
+ <td>true or false</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>recursive</td>
+ <td>true or false</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>version</td>
+ <td>a version number to get</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>date</td>
+ <td>a date stamp to get at</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>label</td>
+ <td>a label to get for</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>quiet</td>
+ <td>suppress output (off by default)</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>autoresponse</td>
+ <td>What to respond with (sets the -I option). By default, -I- is
+ used; values of Y or N will be appended to this.</td>
+ <td>No</td>
+ </tr>
+ </table>
+ <p>Note that only one of version, date or label should be specified</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="autoresponse" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[What to respond with (sets the -I option).]]></short-description>
+ <description><![CDATA[
+ What to respond with (sets the -I option). By default, -I- is
+ used; values of Y or N will be appended to this.
+ ]]></description>
+ </attribute>
+ <attribute name="date" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Date to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.]]></short-description>
+ <description><![CDATA[
+ Set the date to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.
+ <p>
+ ORIGINAL COMMENT THAT DOES NOT SEEM AT ALL VALID:
+ Note we assume that if the supplied string has the value "null" that something
+ went wrong and that the string value got populated from a null object. This
+ happens if a ant variable is used e.g. date="${date}" when date
+ has not been defined to ant!
+ ]]></description>
+ </attribute>
+ <attribute name="label" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Label to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.]]></short-description>
+ <description><![CDATA[
+ Set the label to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.
+ <p>
+ Note we assume that if the supplied string has the value "null" that something
+ went wrong and that the string value got populated from a null object. This
+ happens if a ant variable is used e.g. label="${label_server}" when label_server
+ has not been defined to ant!
+ ]]></description>
+ </attribute>
+ <attribute name="localpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Override the working directory and get to the specified path; optional.]]></short-description>
+ <description><![CDATA[
+ Override the working directory and get to the specified path; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="login" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The login to use when accessing VSS, formatted as "username,password";
+ optional.]]></short-description>
+ <description><![CDATA[
+ The login to use when accessing VSS, formatted as "username,password";
+ optional.
+ <p>
+ You can omit the password if your database is not password protected.
+ if you have a password and omit it, Ant/VSS will hang.
+ ]]></description>
+ </attribute>
+ <attribute name="quiet" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to suppress output when true ; false by default.]]></short-description>
+ <description><![CDATA[
+ Flag to suppress output when true ; false by default.
+ ]]></description>
+ </attribute>
+ <attribute name="recursive" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to tell the task to recurse down the tree;
+ optional, default false.]]></short-description>
+ <description><![CDATA[
+ Flag to tell the task to recurse down the tree;
+ optional, default false.
+ ]]></description>
+ </attribute>
+ <attribute name="serverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>srssafe.ini</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ Set the directory where <code>srssafe.ini</code> resides; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="ssdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>ss.exe</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ directory where <code>ss.exe</code> resides; optional.
+ By default the task expects it to be in the PATH.
+ ]]></description>
+ </attribute>
+ <attribute name="version" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Version number to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.]]></short-description>
+ <description><![CDATA[
+ Set a version number to get;
+ optional, only one of <tt>version</tt>, <tt>label</tt>, or <tt>date</tt>
+ allowed.
+ <p>
+ ORIGINAL COMMENT THAT DOES NOT SEEM AT ALL VALID:
+ Note we assume that if the supplied string has the value "null" that something
+ went wrong and that the string value got populated from a null object. This
+ happens if a ant variable is used e.g. version="${ver_server}" when ver_server
+ has not been defined to ant!
+ NO, in this case the version string is "${ver_server}".
+ ]]></description>
+ </attribute>
+ <attribute name="vsspath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required.]]></short-description>
+ <description><![CDATA[
+ SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required. You should not specify the leading dollar-sign -
+ it is prepended by Ant automatically.
+ <p>
+ Ant can't cope with a '$' sign in an attribute so we have to add it here.
+ Also we strip off any 'vss://' prefix which is an XMS special and should probably be removed!
+ ]]></description>
+ </attribute>
+ <attribute name="writable" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Make fetched files writable; optional, default false.]]></short-description>
+ <description><![CDATA[
+ make fetched files writable; optional, default false.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="vsshistory" category="scm"
+ classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSHISTORY"
+ >
+
+ <short-description><![CDATA[Performs History commands to Microsoft Visual SourceSafe.]]></short-description>
+ <description>
+ <![CDATA[Performs History commands to Microsoft Visual SourceSafe.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="dateformat" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Format of dates in fromDate and toDate; optional.]]></short-description>
+ <description><![CDATA[
+ Format of dates in fromDate and toDate; optional.
+ Used when calculating dates with
+ the numdays attribute.
+ This string uses the formatting rules of SimpleDateFormat.
+ Defaults to DateFormat.SHORT.
+ ]]></description>
+ </attribute>
+ <attribute name="fromdate" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Start Date for the Comparison of two versions; optional.]]></short-description>
+ <description><![CDATA[
+ Set the Start Date for the Comparison of two versions; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="fromlabel" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Start Label; optional.]]></short-description>
+ <description><![CDATA[
+ Set the Start Label; optional
+ ]]></description>
+ </attribute>
+ <attribute name="login" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The login to use when accessing VSS, formatted as "username,password";
+ optional.]]></short-description>
+ <description><![CDATA[
+ The login to use when accessing VSS, formatted as "username,password";
+ optional.
+ <p>
+ You can omit the password if your database is not password protected.
+ if you have a password and omit it, Ant/VSS will hang.
+ ]]></description>
+ </attribute>
+ <attribute name="numdays" type="int"
+ briefType="int" required="NOTDEFINED">
+ <short-description><![CDATA[Number of days for comparison;
+ optional.]]></short-description>
+ <description><![CDATA[
+ Set the number of days for comparison;
+ optional.
+ <p>
+ The default value is 2 days. (maybe)
+ ]]></description>
+ </attribute>
+ <attribute name="output" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Output file name for the history; optional.]]></short-description>
+ <description><![CDATA[
+ Set the output file name for the history; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="recursive" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to tell the task to recurse down the tree;
+ optional, default false.]]></short-description>
+ <description><![CDATA[
+ Flag to tell the task to recurse down the tree;
+ optional, default false.
+ ]]></description>
+ </attribute>
+ <attribute name="serverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>srssafe.ini</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ Set the directory where <code>srssafe.ini</code> resides; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="ssdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>ss.exe</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ directory where <code>ss.exe</code> resides; optional.
+ By default the task expects it to be in the PATH.
+ ]]></description>
+ </attribute>
+ <attribute name="style" type="org.apache.tools.ant.taskdefs.optional.vss.MSVSSHISTORY.BriefCodediffNofile"
+ briefType="&quot;brief&quot;, &quot;codediff&quot;, &quot;nofile&quot;, &quot;default&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Specify the output style; optional.]]></short-description>
+ <description><![CDATA[
+ Specify the output style; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="todate" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[End Date for the Comparison of two versions; optional.]]></short-description>
+ <description><![CDATA[
+ Set the End Date for the Comparison of two versions; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="tolabel" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[End Label ; optional.]]></short-description>
+ <description><![CDATA[
+ Set the End Label ; optional
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name the user whose changes we would like to see; optional.]]></short-description>
+ <description><![CDATA[
+ Name the user whose changes we would like to see; optional
+ ]]></description>
+ </attribute>
+ <attribute name="vsspath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required.]]></short-description>
+ <description><![CDATA[
+ SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required. You should not specify the leading dollar-sign -
+ it is prepended by Ant automatically.
+ <p>
+ Ant can't cope with a '$' sign in an attribute so we have to add it here.
+ Also we strip off any 'vss://' prefix which is an XMS special and should probably be removed!
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="vsslabel" category="scm"
+ classname="org.apache.tools.ant.taskdefs.optional.vss.MSVSSLABEL"
+ >
+
+ <short-description><![CDATA[Performs Label commands to Microsoft Visual SourceSafe.]]></short-description>
+ <description>
+ <![CDATA[Performs Label commands to Microsoft Visual SourceSafe.
+
+ <p>
+ The following attributes are interpreted:
+ <table border="1">
+ <tr>
+ <th>Attribute</th>
+ <th>Values</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>login</td>
+ <td>username,password</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>vsspath</td>
+ <td>SourceSafe path</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>ssdir</td>
+ <td>directory where <code>ss.exe</code> resides. By default the task
+ expects it to be in the PATH.</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>label</td>
+ <td>A label to apply to the hierarchy</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>version</td>
+ <td>An existing file or project version to label</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>autoresponse</td>
+ <td>What to respond with (sets the -I option). By default, -I- is
+ used; values of Y or N will be appended to this.</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>comment</td>
+ <td>The comment to use for this label. Empty or '-' for no comment.</td>
+ <td>No</td>
+ </tr>
+ </table>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="autoresponse" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[What to respond with (sets the -I option).]]></short-description>
+ <description><![CDATA[
+ What to respond with (sets the -I option). By default, -I- is
+ used; values of Y or N will be appended to this.
+ ]]></description>
+ </attribute>
+ <attribute name="comment" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The comment to use for this label; optional.]]></short-description>
+ <description><![CDATA[
+ The comment to use for this label; optional.
+ Empty or '-' for no comment.
+ <p>
+ If this is null or empty, it will be replaced with "-" which
+ is what SourceSafe uses for an empty comment.
+ ]]></description>
+ </attribute>
+ <attribute name="label" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Label to apply; required.]]></short-description>
+ <description><![CDATA[
+ Set the label to apply; required.
+ <p>
+ Note we assume that if the supplied string has the value "null" that something
+ went wrong and that the string value got populated from a null object. This
+ happens if a ant variable is used e.g. label="${label_server}" when label_server
+ has not been defined to ant!
+ ]]></description>
+ </attribute>
+ <attribute name="login" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The login to use when accessing VSS, formatted as "username,password";
+ optional.]]></short-description>
+ <description><![CDATA[
+ The login to use when accessing VSS, formatted as "username,password";
+ optional.
+ <p>
+ You can omit the password if your database is not password protected.
+ if you have a password and omit it, Ant/VSS will hang.
+ ]]></description>
+ </attribute>
+ <attribute name="serverpath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>srssafe.ini</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ Set the directory where <code>srssafe.ini</code> resides; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="ssdir" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Directory where <code>ss.exe</code> resides; optional.]]></short-description>
+ <description><![CDATA[
+ directory where <code>ss.exe</code> resides; optional.
+ By default the task expects it to be in the PATH.
+ ]]></description>
+ </attribute>
+ <attribute name="version" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name an existing file or project version to label; optional.]]></short-description>
+ <description><![CDATA[
+ Name an existing file or project version to label; optional.
+ By default the current version is labelled.
+ <p>
+ Note we assume that if the supplied string has the value "null" that something
+ went wrong and that the string value got populated from a null object. This
+ happens if a ant variable is used e.g. version="${ver_server}" when ver_server
+ has not been defined to ant!
+ ]]></description>
+ </attribute>
+ <attribute name="vsspath" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required.]]></short-description>
+ <description><![CDATA[
+ SourceSafe path which specifies the project/file(s) you wish to
+ perform the action on; required. You should not specify the leading dollar-sign -
+ it is prepended by Ant automatically.
+ <p>
+ Ant can't cope with a '$' sign in an attribute so we have to add it here.
+ Also we strip off any 'vss://' prefix which is an XMS special and should probably be removed!
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="waitfor" category="control"
+ classname="org.apache.tools.ant.taskdefs.WaitFor"
+ >
+
+ <short-description><![CDATA[Wait for an external event to occur.]]></short-description>
+ <description>
+ <![CDATA[Wait for an external event to occur.
+
+ Wait for an external process to start or to complete some
+ task. This is useful with the <code>parallel</code> task to
+ syncronize the execution of tests with server startup.
+
+ The following attributes can be specified on a waitfor task:
+ <ul>
+ <li>maxwait - maximum length of time to wait before giving up</li>
+ <li>maxwaitunit - The unit to be used to interpret maxwait attribute</li>
+ <li>checkevery - amount of time to sleep between each check</li>
+ <li>checkeveryunit - The unit to be used to interpret checkevery attribute</li>
+ <li>timeoutproperty - name of a property to set if maxwait has been exceeded.</li>
+ </ul>
+
+ The maxwaitunit and checkeveryunit are allowed to have the following values:
+ millesond, second, minute, hour, day and week. The default is millisecond.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="checkevery" type="long"
+ briefType="long" required="NOTDEFINED">
+ <short-description><![CDATA[Time between each check.]]></short-description>
+ <description><![CDATA[
+ Set the time between each check
+ ]]></description>
+ </attribute>
+ <attribute name="checkeveryunit" type="org.apache.tools.ant.taskdefs.WaitFor.Unit"
+ briefType="&quot;millisecond&quot;, &quot;second&quot;, &quot;minute&quot;, &quot;hour&quot;, &quot;day&quot;, &quot;week&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Check every time unit.]]></short-description>
+ <description><![CDATA[
+ Set the check every time unit
+ ]]></description>
+ </attribute>
+ <attribute name="maxwait" type="long"
+ briefType="long" required="NOTDEFINED">
+ <short-description><![CDATA[Maximum length of time to wait.]]></short-description>
+ <description><![CDATA[
+ Set the maximum length of time to wait
+ ]]></description>
+ </attribute>
+ <attribute name="maxwaitunit" type="org.apache.tools.ant.taskdefs.WaitFor.Unit"
+ briefType="&quot;millisecond&quot;, &quot;second&quot;, &quot;minute&quot;, &quot;hour&quot;, &quot;day&quot;, &quot;week&quot;" required="NOTDEFINED">
+ <short-description><![CDATA[Max wait time unit.]]></short-description>
+ <description><![CDATA[
+ Set the max wait time unit
+ ]]></description>
+ </attribute>
+ <attribute name="timeoutproperty" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name the property to set after a timeout.]]></short-description>
+ <description><![CDATA[
+ Name the property to set after a timeout.
+ ]]></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="war" category="packaging"
+ classname="org.apache.tools.ant.taskdefs.War"
+ matchingTask="true">
+
+ <short-description><![CDATA[An extension of &lt;jar&gt; to create a WAR archive.]]></short-description>
+ <description>
+ <![CDATA[An extension of &lt;jar&gt; to create a WAR archive.
+ Contains special treatment for files that should end up in the
+ <code>WEB-INF/lib</code>, <code>WEB-INF/classes</code> or
+ <code>WEB-INF</code> directories of the Web Application Archive.</p>
+ <p>(The War task is a shortcut for specifying the particular layout of a WAR file.
+ The same thing can be accomplished by using the <i>prefix</i> and <i>fullpath</i>
+ attributes of zipfilesets in a Zip or Jar task.)</p>
+ <p>The extended zipfileset element from the zip task (with attributes <i>prefix</i>, <i>fullpath</i>, and <i>src</i>) is available in the War task.</p>]]>
+ </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="webxml" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Deployment descriptor to use (WEB-INF/web.xml);
+ required unless <tt>update=true</tt>.]]></short-description>
+ <description><![CDATA[
+ set the deployment descriptor to use (WEB-INF/web.xml);
+ required unless <tt>update=true</tt>
+ ]]></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="classes" type="org.apache.tools.ant.types.ZipFileSet"
+ briefType="ZipFileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add files under WEB-INF/classes.]]></short-description>
+ <description>
+ <![CDATA[add files under WEB-INF/classes]]>
+ </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="lib" type="org.apache.tools.ant.types.ZipFileSet"
+ briefType="ZipFileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add files under WEB-INF/lib/.]]></short-description>
+ <description>
+ <![CDATA[add files under WEB-INF/lib/]]>
+ </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="webinf" type="org.apache.tools.ant.types.ZipFileSet"
+ briefType="ZipFileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Files to add under WEB-INF;.]]></short-description>
+ <description>
+ <![CDATA[files to add under WEB-INF;]]>
+ </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="wljspc" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.jsp.WLJspc"
+ matchingTask="true">
+
+ <short-description><![CDATA[Precompiles JSP's using WebLogic's JSP compiler (weblogic.jspc).]]></short-description>
+ <description>
+ <![CDATA[Precompiles JSP's using WebLogic's JSP compiler (weblogic.jspc).]]>
+ </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="dest" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Directory containing the source jsp's.]]></short-description>
+ <description><![CDATA[
+ Set the directory containing the source jsp's
+ ]]></description>
+ </attribute>
+ <attribute name="package" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Package under which the compiled classes go.]]></short-description>
+ <description><![CDATA[
+ Set the package under which the compiled classes go
+ ]]></description>
+ </attribute>
+ <attribute name="src" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Directory containing the source jsp's.]]></short-description>
+ <description><![CDATA[
+ Set the directory containing the source jsp's
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Maybe creates a nested classpath element.]]></short-description>
+ <description>
+ <![CDATA[Maybe creates a nested classpath element.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="wlrun" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.WLRun"
+ >
+
+ <short-description><![CDATA[Starts a WebLogic server.]]></short-description>
+ <description>
+ <![CDATA[Starts a WebLogic server.
+ A number of parameters are used to control the operation of the weblogic instance. Note that the task,
+ and hence ant, will not complete until the weblogic instance is stopped.</p>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="args" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Additional argument string passed to the Weblogic instance;
+ optional.]]></short-description>
+ <description><![CDATA[
+ Additional argument string passed to the Weblogic instance;
+ optional.
+ ]]></description>
+ </attribute>
+ <attribute name="beahome" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The location of the BEA Home; implicitly
+ selects Weblogic 6.0; optional.]]></short-description>
+ <description><![CDATA[
+ The location of the BEA Home; implicitly
+ selects Weblogic 6.0; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[The classpath to be used with the Java Virtual Machine that runs the Weblogic
+ Server; required.]]></short-description>
+ <description><![CDATA[
+ The classpath to be used with the Java Virtual Machine that runs the Weblogic
+ Server; required. Prior to Weblogic 6.0, this is typically set to the Weblogic
+ boot classpath. Under Weblogic 6.0 this should include all the
+ weblogic jars
+ ]]></description>
+ </attribute>
+ <attribute name="domain" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Domain to run in; required for WL6.0.]]></short-description>
+ <description><![CDATA[
+ Set the Domain to run in; required for WL6.0
+ ]]></description>
+ </attribute>
+ <attribute name="home" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The location where weblogic lives.]]></short-description>
+ <description><![CDATA[
+ The location where weblogic lives.
+ Required. This is the absolute location, not relative to
+ BEA home.
+ ]]></description>
+ </attribute>
+ <attribute name="jvmargs" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Additional arguments to pass to the weblogic JVM.]]></short-description>
+ <description><![CDATA[
+ Set the additional arguments to pass to the weblogic JVM
+ ]]></description>
+ </attribute>
+ <attribute name="name" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the weblogic server within the weblogic home which is to be run.]]></short-description>
+ <description><![CDATA[
+ The name of the weblogic server within the weblogic home which is to be run.
+ Optiona, defaults to &quot;myserver&quot;
+ ]]></description>
+ </attribute>
+ <attribute name="pkpassword" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Private key password so the server can decrypt the SSL private key file;
+ optional and only applicable to WL6.0.]]></short-description>
+ <description><![CDATA[
+ Set the private key password so the server can decrypt the SSL private key file;
+ optional and only applicable to WL6.0.
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Management password of the server;
+ optional and only applicable to WL6.0.]]></short-description>
+ <description><![CDATA[
+ Set the management password of the server;
+ optional and only applicable to WL6.0.
+ ]]></description>
+ </attribute>
+ <attribute name="policy" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the security policy file within the weblogic home directory that
+ is to be used.]]></short-description>
+ <description><![CDATA[
+ The name of the security policy file within the weblogic home directory that
+ is to be used. If not specified, the default policy file <code>weblogic.policy</code>
+ is used.
+ ]]></description>
+ </attribute>
+ <attribute name="properties" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The name of the server's properties file within the weblogic home directory
+ used to control the weblogic instance;
+ required for WL4.5.1.]]></short-description>
+ <description><![CDATA[
+ The name of the server's properties file within the weblogic home directory
+ used to control the weblogic instance;
+ required for WL4.5.1
+ ]]></description>
+ </attribute>
+ <attribute name="username" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Management username to run the server;
+ optional and only applicable to WL6.0.]]></short-description>
+ <description><![CDATA[
+ Set the management username to run the server;
+ optional and only applicable to WL6.0.
+ ]]></description>
+ </attribute>
+ <attribute name="weblogicmainclass" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the main class for weblogic; optional.]]></short-description>
+ <description><![CDATA[
+ name of the main class for weblogic; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="wlclasspath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Weblogic classpath used by the Weblogic Server;
+ optional, and only applicable to WL4.5.1
+
+ The weblogic classpath is used by weblogic to support dynamic class loading.]]></short-description>
+ <description><![CDATA[
+ Set the weblogic classpath used by the Weblogic Server;
+ optional, and only applicable to WL4.5.1
+
+ The weblogic classpath is used by weblogic to support dynamic class loading.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add the classpath for the user classes.]]></short-description>
+ <description>
+ <![CDATA[Add the classpath for the user classes]]>
+ </description>
+ </element>
+
+ <element name="wlclasspath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Get the classpath to the weblogic classpaths.]]></short-description>
+ <description>
+ <![CDATA[Get the classpath to the weblogic classpaths]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="wlstop" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.ejb.WLStop"
+ >
+
+ <short-description><![CDATA[Shuts down a WebLogic server.]]></short-description>
+ <description>
+ <![CDATA[Shuts down a WebLogic server.
+ To shut down an instance you must supply both a username and
+ a password.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="beahome" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The location of the BEA Home; implicitly
+ selects Weblogic 6.0 shutdown; optional.]]></short-description>
+ <description><![CDATA[
+ The location of the BEA Home; implicitly
+ selects Weblogic 6.0 shutdown; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[The classpath to be used with the Java Virtual Machine that runs the Weblogic
+ Shutdown command;.]]></short-description>
+ <description><![CDATA[
+ The classpath to be used with the Java Virtual Machine that runs the Weblogic
+ Shutdown command;
+ ]]></description>
+ </attribute>
+ <attribute name="delay" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Delay (in seconds) before shutting down the server;
+ optional.]]></short-description>
+ <description><![CDATA[
+ Set the delay (in seconds) before shutting down the server;
+ optional.
+ ]]></description>
+ </attribute>
+ <attribute name="password" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The password for the account specified in the
+ user parameter; required.]]></short-description>
+ <description><![CDATA[
+ The password for the account specified in the
+ user parameter; required
+ ]]></description>
+ </attribute>
+ <attribute name="url" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[URL to which the weblogic server is listening
+ for T3 connections; required.]]></short-description>
+ <description><![CDATA[
+ Set the URL to which the weblogic server is listening
+ for T3 connections; required.
+ ]]></description>
+ </attribute>
+ <attribute name="user" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The username of the account which will be used to shutdown the server;
+ required.]]></short-description>
+ <description><![CDATA[
+ The username of the account which will be used to shutdown the server;
+ required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[The classpath to be used with the Java Virtual Machine that runs the Weblogic
+ Shutdown command;.]]></short-description>
+ <description>
+ <![CDATA[The classpath to be used with the Java Virtual Machine that runs the Weblogic
+ Shutdown command;]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="wsdltodotnet" category="dotnet"
+ classname="org.apache.tools.ant.taskdefs.optional.dotnet.WsdlToDotnet"
+ >
+
+ <short-description><![CDATA[Converts a WSDL file or URL resource into a .NET language.]]></short-description>
+ <description>
+ <![CDATA[Converts a WSDL file or URL resource into a .NET language.
+
+ See "Creating an XML Web Service Proxy", "wsdl.exe" docs in
+ the framework SDK documentation]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="destfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the file to generate.]]></short-description>
+ <description><![CDATA[
+ Name of the file to generate. Required
+ ]]></description>
+ </attribute>
+ <attribute name="extraoptions" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Any extra WSDL.EXE options which aren't explicitly
+ supported by the ant wrapper task; optional.]]></short-description>
+ <description><![CDATA[
+ Any extra WSDL.EXE options which aren't explicitly
+ supported by the ant wrapper task; optional
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Should failure halt the build?.]]></short-description>
+ <description><![CDATA[
+ Should failure halt the build? optional, default=true
+ ]]></description>
+ </attribute>
+ <attribute name="language" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Language; one of "CS", "JS", or "VB"
+ optional, default is CS for C# source.]]></short-description>
+ <description><![CDATA[
+ set the language; one of "CS", "JS", or "VB"
+ optional, default is CS for C# source
+ ]]></description>
+ </attribute>
+ <attribute name="namespace" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Namespace to place the source in.
+ optional; default "".]]></short-description>
+ <description><![CDATA[
+ namespace to place the source in.
+ optional; default ""
+ ]]></description>
+ </attribute>
+ <attribute name="server" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to enable server side code generation;
+ optional, default=false.]]></short-description>
+ <description><![CDATA[
+ flag to enable server side code generation;
+ optional, default=false
+ ]]></description>
+ </attribute>
+ <attribute name="srcfile" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The local WSDL file to parse; either url or srcFile is required.]]></short-description>
+ <description><![CDATA[
+ The local WSDL file to parse; either url or srcFile is required.
+ ]]></description>
+ </attribute>
+ <attribute name="url" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[URL to fetch.]]></short-description>
+ <description><![CDATA[
+ Sets the URL to fetch. Fetching is by wsdl.exe; Ant proxy settings
+ are ignored; either url or srcFile is required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="xmlproperty" category="xml"
+ classname="org.apache.tools.ant.taskdefs.XmlProperty"
+ >
+
+ <short-description><![CDATA[Loads property values from a valid XML file, generating the property names from the file's element and attribute names.]]></short-description>
+ <description>
+ <![CDATA[Loads property values from a valid XML file,
+ generating the property names from the file's element and attribute names.
+
+ Example:
+ <pre>
+ &lt;root-tag myattr="true"&gt;
+ &lt;inner-tag someattr="val"&gt;Text&lt;/inner-tag&gt;
+ &lt;a2&gt;&lt;a3&gt;&lt;a4&gt;false&lt;/a4&gt;&lt;/a3&gt;&lt;/a2&gt;
+ &lt;/root-tag&gt;
+</pre>
+ this generates
+ <pre>
+ root-tag(myattr)=true
+ root-tag.inner-tag=Text
+ root-tag.inner-tag(someattr)=val
+ root-tag.a2.a3.a4=false
+ </pre>]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="collapseattributes" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to treat attributes as nested elements;
+ optional, default false.]]></short-description>
+ <description><![CDATA[
+ flag to treat attributes as nested elements;
+ optional, default false
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[The XML file to parse; required.]]></short-description>
+ <description><![CDATA[
+ The XML file to parse; required.
+ ]]></description>
+ </attribute>
+ <attribute name="keeproot" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to include the xml root tag as a
+ first value in the property name; optional,
+ default is true.]]></short-description>
+ <description><![CDATA[
+ flag to include the xml root tag as a
+ first value in the property name; optional,
+ default is true
+ ]]></description>
+ </attribute>
+ <attribute name="prefix" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[The prefix to prepend to each property.]]></short-description>
+ <description><![CDATA[
+ the prefix to prepend to each property
+ ]]></description>
+ </attribute>
+ <attribute name="validate" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Flag to validate the XML file; optional, default false.]]></short-description>
+ <description><![CDATA[
+ flag to validate the XML file; optional, default false
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="xmlvalidate" category="other"
+ classname="org.apache.tools.ant.taskdefs.optional.XMLValidateTask"
+ >
+
+ <short-description><![CDATA[Checks XML files are valid (or only well formed).]]></short-description>
+ <description>
+ <![CDATA[Checks XML files are valid (or only well formed). The
+ task uses the SAX2 parser implementation provided by JAXP by default
+ (probably the one that is used by Ant itself), but one can specify any
+ SAX1/2 parser if needed]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="classname" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Specify the class name of the SAX parser to be used. (optional).]]></short-description>
+ <description><![CDATA[
+ Specify the class name of the SAX parser to be used. (optional)
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Specify the classpath to be searched to load the parser (optional).]]></short-description>
+ <description><![CDATA[
+ Specify the classpath to be searched to load the parser (optional)
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Where to find the parser class; optional.]]></short-description>
+ <description><![CDATA[
+ Where to find the parser class; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="failonerror" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Specify how parser error are to be handled;
+ optional, default=true
+ <p>
+ If set to <code>true</code> (default), throw a buildException if the parser yields an error.]]></short-description>
+ <description><![CDATA[
+ Specify how parser error are to be handled;
+ optional, default=true
+ <p>
+ If set to <code>true</code> (default), throw a buildException if the parser yields an error.
+ ]]></description>
+ </attribute>
+ <attribute name="file" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Specify the file to be checked; optional.]]></short-description>
+ <description><![CDATA[
+ specify the file to be checked; optional.
+ ]]></description>
+ </attribute>
+ <attribute name="lenient" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Specify whether the parser should be validating.]]></short-description>
+ <description><![CDATA[
+ Specify whether the parser should be validating. Default is <code>true</code>.
+ <p>
+ If set to false, the validation will fail only if the parsed document is not well formed XML.
+ <p>
+ this option is ignored if the specified class with {@link #setClassName(String)} is not a SAX2
+ XMLReader.
+ ]]></description>
+ </attribute>
+ <attribute name="warn" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Specify how parser error are to be handled.]]></short-description>
+ <description><![CDATA[
+ Specify how parser error are to be handled.
+ <p>
+ If set to <code>true</true> (default), log a warn message for each SAX warn event.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="xmlcatalog" type="org.apache.tools.ant.types.XMLCatalog"
+ briefType="XMLCatalog"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add an XMLCatalog as a nested element; optional.]]></short-description>
+ <description>
+ <![CDATA[add an XMLCatalog as a nested element; optional.]]>
+ </description>
+ </element>
+
+ <element name="fileset" type="org.apache.tools.ant.types.FileSet"
+ briefType="Fileset"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Specify a set of file to be checked.]]></short-description>
+ <description>
+ <![CDATA[specify a set of file to be checked]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[No description.]]></short-description>
+ <description>
+ <![CDATA[]]>
+ </description>
+ </element>
+
+ <element name="dtd" type="org.apache.tools.ant.types.DTDLocation"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create a DTD location record; optional.]]></short-description>
+ <description>
+ <![CDATA[Create a DTD location record; optional.
+ This stores the location of a DTD. The DTD is identified
+ by its public Id.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="xslt" category="xml"
+ classname="org.apache.tools.ant.taskdefs.XSLTProcess"
+ matchingTask="true">
+
+ <short-description><![CDATA[Processes a set of XML documents via XSLT.]]></short-description>
+ <description>
+ <![CDATA[Processes a set of XML documents via XSLT. This is
+ useful for building views of XML based documentation.]]>
+ </description>
+
+ <structure>
+
+ <attributes>
+ <attribute name="basedir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Base directory;
+ optional, default is the project's basedir.]]></short-description>
+ <description><![CDATA[
+ Set the base directory;
+ optional, default is the project's basedir.
+ ]]></description>
+ </attribute>
+ <attribute name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path" required="NOTDEFINED">
+ <short-description><![CDATA[Optional classpath to the XSL processor.]]></short-description>
+ <description><![CDATA[
+ Set the optional classpath to the XSL processor
+ ]]></description>
+ </attribute>
+ <attribute name="classpathref" type="org.apache.tools.ant.types.Reference"
+ briefType="Reference" required="NOTDEFINED">
+ <short-description><![CDATA[Reference to an optional classpath to the XSL processor.]]></short-description>
+ <description><![CDATA[
+ Set the reference to an optional classpath to the XSL processor
+ ]]></description>
+ </attribute>
+ <attribute name="destdir" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Destination directory into which the XSL result
+ files should be copied to;
+ required, unless <tt>in</tt> and <tt>out</tt> are
+ specified.]]></short-description>
+ <description><![CDATA[
+ Set the destination directory into which the XSL result
+ files should be copied to;
+ required, unless <tt>in</tt> and <tt>out</tt> are
+ specified.
+ ]]></description>
+ </attribute>
+ <attribute name="extension" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Desired file extension to be used for the target;
+ optional, default is html.]]></short-description>
+ <description><![CDATA[
+ Set the desired file extension to be used for the target;
+ optional, default is html.
+ ]]></description>
+ </attribute>
+ <attribute name="force" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Set whether to check dependencies, or always generate;
+ optional, default is false.]]></short-description>
+ <description><![CDATA[
+ Set whether to check dependencies, or always generate;
+ optional, default is false.
+ ]]></description>
+ </attribute>
+ <attribute name="in" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies a single XML document to be styled.]]></short-description>
+ <description><![CDATA[
+ specifies a single XML document to be styled. Should be used
+ with the <tt>out</tt> attribute; ; required if <tt>out</tt> is set
+ ]]></description>
+ </attribute>
+ <attribute name="out" type="java.io.File"
+ briefType="File" required="NOTDEFINED">
+ <short-description><![CDATA[Specifies the output name for the styled result from the
+ <tt>in</tt> attribute; required if <tt>in</tt> is set.]]></short-description>
+ <description><![CDATA[
+ Specifies the output name for the styled result from the
+ <tt>in</tt> attribute; required if <tt>in</tt> is set
+ ]]></description>
+ </attribute>
+ <attribute name="processor" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the XSL processor to use; optional, default trax.]]></short-description>
+ <description><![CDATA[
+ Set the name of the XSL processor to use; optional, default trax.
+ Other values are "xalan" for Xalan1 and "xslp" for XSL:P, though the
+ later is strongly deprecated.
+ ]]></description>
+ </attribute>
+ <attribute name="scanincludeddirectories" type="boolean"
+ briefType="boolean" required="NOTDEFINED">
+ <short-description><![CDATA[Whether to style all files in the included directories as well;
+ optional, default is true.]]></short-description>
+ <description><![CDATA[
+ Whether to style all files in the included directories as well;
+ optional, default is true.
+ ]]></description>
+ </attribute>
+ <attribute name="style" type="java.lang.String"
+ briefType="String" required="NOTDEFINED">
+ <short-description><![CDATA[Name of the stylesheet to use - given either relative
+ to the project's basedir or as an absolute path; required.]]></short-description>
+ <description><![CDATA[
+ Name of the stylesheet to use - given either relative
+ to the project's basedir or as an absolute path; required.
+ ]]></description>
+ </attribute>
+ </attributes>
+
+ <elements>
+ <element name="xmlcatalog" type="org.apache.tools.ant.types.XMLCatalog"
+ briefType="XMLCatalog"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Add the catalog to our internal catalog.]]></short-description>
+ <description>
+ <![CDATA[Add the catalog to our internal catalog]]>
+ </description>
+ </element>
+
+ <element name="classpath" type="org.apache.tools.ant.types.Path"
+ briefType="Path"
+ required="NOTDEFINED">
+ <short-description><![CDATA[Optional classpath to the XSL processor.]]></short-description>
+ <description>
+ <![CDATA[Set the optional classpath to the XSL processor]]>
+ </description>
+ </element>
+
+ <element name="outputproperty" type="org.apache.tools.ant.taskdefs.XSLTProcess.OutputProperty"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create an instance of an output property to be configured.]]></short-description>
+ <description>
+ <![CDATA[Create an instance of an output property to be configured.]]>
+ </description>
+ </element>
+
+ <element name="param" type="org.apache.tools.ant.taskdefs.XSLTProcess.Param"
+ briefType=""
+ required="NOTDEFINED">
+ <short-description><![CDATA[Create an instance of an XSL parameter for configuration by Ant.]]></short-description>
+ <description>
+ <![CDATA[Create an instance of an XSL parameter for configuration by Ant.]]>
+ </description>
+ </element>
+
+ </elements>
+
+ </structure>
+
+</task>
+
+
+<task name="zip" category="packaging"
+ classname="org.apache.tools.ant.taskdefs.Zip"
+ matchingTask="true">
+
+ <short-description><![CDATA[Create a Zip file.]]></short-description>
+ <description>
+ <![CDATA[Create a Zip file.]]>
+ </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="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="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="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>
+</tasks>
diff --git a/ant/org.eclipse.ant.ui/Ant Editor Content Assist Dev/tasks.xml b/ant/org.eclipse.ant.ui/Ant Editor Content Assist Dev/tasks.xml
new file mode 100644
index 000000000..626f04e67
--- /dev/null
+++ b/ant/org.eclipse.ant.ui/Ant Editor Content Assist Dev/tasks.xml
@@ -0,0 +1,5139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TASKS>
+ <TASK NAME="ant">
+ <DESCRIPTION>&lt;p&gt;Runs Ant on a supplied buildfile. This can be used to build subprojects.&lt;/p&gt;
+&lt;p&gt;When the &lt;i&gt;antfile&lt;/i&gt; attribute is omitted, the file &amp;quot;build.xml&amp;quot;
+in the supplied directory (&lt;i&gt;dir&lt;/i&gt; attribute) is used.&lt;/p&gt;
+&lt;p&gt;If no target attribute is supplied, the default target of the new project is
+used.&lt;/p&gt;
+&lt;p&gt;By default, all of the properties of the current project will be
+available in the new project. Alternatively, you can
+set the &lt;i&gt;inheritAll&lt;/i&gt; attribute to &lt;code&gt;false&lt;/code&gt; and only
+&amp;quot;user&amp;quot; properties (i.e., those passed on the command-line)
+will be passed to the new project. In either case, the set of
+properties passed to the new project will override the properties that
+are set in the new project (See also the &lt;a href=&quot;property.html&quot;&gt;property task&lt;/a&gt;).&lt;/p&gt;
+&lt;p&gt;You can also set properties in the new project from the old project by
+using nested property tags. These properties are always passed regardless of the
+setting of &lt;i&gt;inheritAll&lt;/i&gt;. This allows you to parameterize your subprojects.&lt;/p&gt;
+&lt;p&gt;References to data types can also be passed to the new project, but
+by default they are not. If you set the inheritrefs attribute to
+true, all references will be copied, but they will not override
+references defined in the new project.&lt;/p&gt;
+&lt;p&gt;Nested &lt;a href=&quot;#reference&quot;&gt;&lt;i&gt;&amp;lt;reference&amp;gt;&lt;/i&gt;&lt;/a&gt; elements
+can also be used to copy references from the calling project to the
+new project, optionally under a different id. References taken from
+nested elements will override existing references in the new
+project.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="antfile" REQUIRED="no">
+ <DESCRIPTION>the buildfile to use. Defaults to&quot;build.xml&quot;. This file is expected to be a filenamerelative to the dir attribute given</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dir" REQUIRED="no">
+ <DESCRIPTION>the directory to use as a basedir for the new Ant project. Defaults to the current project's basedir, unlessinheritall has been set to false, in which case it doesn'thave a default value. This will override the basedirsetting of the called project</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="target" REQUIRED="no">
+ <DESCRIPTION>the target of the new Ant project that should be executed.Defaults to the new project's default target</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="output" REQUIRED="no">
+ <DESCRIPTION>Filename to write the ant output to. This isrelative to the value of the dir attribute if it has been set orto the base directory of the current project otherwise.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="inheritall" REQUIRED="no">
+ <DESCRIPTION>If true, pass all properties to thenew Ant project. Defaults to true</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="inheritrefs" REQUIRED="no">
+ <DESCRIPTION>If true, pass all references to thenew Ant project. Defaults to false</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="antcall">
+ <DESCRIPTION>&lt;p&gt;Call another target within the same build-file optionally specifying some
+properties (param's in this context)&lt;/p&gt;
+&lt;p&gt;By default, all of the properties of the current project will be
+available in the new project. Alternatively, you can
+set the &lt;i&gt;inheritAll&lt;/i&gt; attribute to &lt;code&gt;false&lt;/code&gt; and only
+&amp;quot;user&amp;quot; properties (i.e., those passed on the command-line)
+will be passed to the new project. In either case, the set of
+properties passed to the new project will override the properties that
+are set in the new project (See also the &lt;a href=&quot;property.html&quot;&gt;property task&lt;/a&gt;).&lt;/p&gt;
+&lt;p&gt;You can also set properties in the new project from the old project by
+using nested param tags. These properties are always passed regardless of the
+setting of &lt;i&gt;inheritAll&lt;/i&gt;. This allows you to parameterize your subprojects.&lt;/p&gt;
+&lt;p&gt;Nested &lt;a href=&quot;#reference&quot;&gt;&lt;i&gt;&amp;lt;reference&amp;gt;&lt;/i&gt;&lt;/a&gt; elements can
+be used to copy references from the calling project to the new
+project, optionally under a different id. References taken from
+nested elements will override existing references in the new
+project.&lt;/p&gt;
+&lt;p&gt;
+When a target is invoked by antcall, all of its dependent targets will
+also be called within the context of any new parameters. For example. if
+the target &amp;quot;doSomethingElse&amp;quot; depended on the target &amp;quot;init&amp;quot;, then the
+&lt;i&gt;antcall&lt;/i&gt; of &amp;quot;doSomethingElse&amp;quot; will call &amp;quot;init&amp;quot; during the call.
+Of course, any properties defined in the antcall task or inherited from the calling target
+will be fixed and not overridable in the init task -or indeed in the &amp;quot;doSomethingElse&amp;quot; task.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="target" REQUIRED="yes">
+ <DESCRIPTION>The target to execute</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="inheritall" REQUIRED="no">
+ <DESCRIPTION>If true, pass all properties to the new Antproject. Defaults to true.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="inheritrefs" REQUIRED="no">
+ <DESCRIPTION>If true, pass all references to thenew Ant project. Defaults to false</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="antstructure">
+ <DESCRIPTION>&lt;p&gt;Generates a DTD for Ant buildfiles which contains information
+about all tasks currently known to Ant.&lt;/p&gt;
+&lt;p&gt;Note that the DTD generated by this task is incomplete, you can
+always add XML entities using &lt;a
+href=&quot;taskdef.html&quot;&gt;&lt;code&gt;&amp;lt;taskdef&amp;gt;&lt;/code&gt;&lt;/a&gt; or &lt;a
+href=&quot;typedef.html&quot;&gt;&lt;code&gt;&amp;lt;typedef&amp;gt;&lt;/code&gt;&lt;/a&gt;. See &lt;a
+href=&quot;http://www.sdv.fr/pages/casa/html/ant-dtd.en.html&quot;
+target=&quot;_top&quot;&gt;here&lt;/a&gt; for a way to get around this problem.&lt;/p&gt;
+&lt;p&gt;This task doesn't know about required attributes, all will be
+listed as &lt;code&gt;#IMPLIED&lt;/code&gt;.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="output" REQUIRED="yes">
+ <DESCRIPTION>file to write the DTD to</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="apply">
+ <DESCRIPTION>&lt;p&gt;Executes a system command. When the &lt;i&gt;os&lt;/i&gt; attribute is specified, then
+the command is only executed when Ant is run on one of the specified operating
+systems.&lt;/p&gt;
+&lt;p&gt;The files and/or directories of a number of &lt;a
+href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt;s are passed as arguments
+to the system command.&lt;/p&gt;
+&lt;p&gt;If you specify a nested &lt;a
+href=&quot;../CoreTypes/mapper.html&quot;&gt;mapper&lt;/a&gt; and the &lt;i&gt;dest&lt;/i&gt; attribute,
+the timestamp of each source file is compared to the timestamp of a
+target file which is defined by the nested mapper element and searched
+for in the given dest.&lt;/p&gt;
+&lt;p&gt;At least one fileset is required, and you must not specify more than
+one mapper.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="executable" REQUIRED="yes">
+ <DESCRIPTION>the command to execute without any command linearguments</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dest" REQUIRED="yes, if you specify a nested mapper">
+ <DESCRIPTION>the directory where the &lt;apply&gt; expects the target files will be placed by the command, when it is executed. </DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dir" REQUIRED="no">
+ <DESCRIPTION>the directory in which the command should be executed</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="relative" REQUIRED="no, default is false">
+ <DESCRIPTION>whether the filenames should be passed on thecommand line as absolute or relative pathnames (relative to thebase directory of the corresponding fileset for source files orthe dest attribute for target files)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="os" REQUIRED="no">
+ <DESCRIPTION>list of Operating Systems on which the command may beexecuted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="output" REQUIRED="no">
+ <DESCRIPTION>the file to which the output of the command should beredirected</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="outputproperty" REQUIRED="no">
+ <DESCRIPTION>the name of a property in which the output of the command should be stored</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="timeout" REQUIRED="no">
+ <DESCRIPTION>Stop the command if it doesn't finish within thespecified time (given in milliseconds)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no">
+ <DESCRIPTION>Stop the buildprocess if the command exits with areturncode other than 0</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="skipemptyfilesets" REQUIRED="no, default is false">
+ <DESCRIPTION>Don't run the command, if no source files havebeen found or are newer than their corresponding targetfiles</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="parallel" REQUIRED="no">
+ <DESCRIPTION>Run the command only once, appending all files asarguments. If false, command will be executed once for every file. Defaults to false.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="type" REQUIRED="no, default is file">
+ <DESCRIPTION>One of file, dir orboth. If set to file, only the names of plainfiles will be sent to the command. If set to dir, onlythe names of directories are considered</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="newenvironment" REQUIRED="no, default is false">
+ <DESCRIPTION>Do not propagate old environment when new environmentvariables are specified</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="vmlauncher" REQUIRED="no, default is true">
+ <DESCRIPTION>Run command using the Java VM's execution facilitieswhere available. If set to false the underlying OS's shell,either directly or through the antRun scripts, will be used.Under some operating systems, this gives access to facilitiesnot normally available through the VM including, under Windows,being able to execute scripts, rather than their associatedinterpreter. If you want to specify the name of theexecutable as a relative path to the directory given by thedir attribute, it may become necessary to set vmlauncher tofalse as well</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="available">
+ <DESCRIPTION>&lt;p&gt;Sets a property if a resource is available at runtime. This resource can be a
+file, a directory, a class in the classpath, or a JVM system resource.&lt;/p&gt;
+&lt;p&gt;If the resource is present, the property value is set to true by
+default; otherwise, the property is not set. You can set the value to
+something other than the default by specifying the &lt;code&gt;value&lt;/code&gt; attribute.&lt;/p&gt;
+&lt;p&gt;Normally, this task is used to set properties that are useful to avoid target
+execution depending on system parameters.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="property" REQUIRED="yes">
+ <DESCRIPTION>The name of the property to set</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="value" REQUIRED="no">
+ <DESCRIPTION>The value to set the property to. Defaults to &quot;true&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classname" REQUIRED="yes">
+ <DESCRIPTION>The class to look for in the classpath</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="file" REQUIRED="">
+ <DESCRIPTION>The file to look for</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="resource" REQUIRED="">
+ <DESCRIPTION>The resource to look for in the JVM</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>The classpath to use when looking up classname or resource</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filepath" REQUIRED="no">
+ <DESCRIPTION>The path to use when looking up file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpathref" REQUIRED="no">
+ <DESCRIPTION>The classpath to use, given as a reference to a path defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="type" REQUIRED="no">
+ <DESCRIPTION>The type of file to look for, either a directory (type=&quot;dir&quot;) or a file(type=&quot;file&quot;). If not set, the property will be set if the name specified in the fileattribute exists as either a file or a directory</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="ignoresystemclasses" REQUIRED="no">
+ <DESCRIPTION>Ignore Ant's runtime classes, using only the specifiedclasspath. Only affects the &quot;classname&quot; attribute. Defaults to &quot;false</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="basename">
+ <DESCRIPTION>&lt;p&gt;
+Task to determine the basename of a specified file, optionally minus a
+specified suffix.
+&lt;/p&gt;
+&lt;p&gt;
+When this task executes, it will set the specified property to the
+value of the last path element of the specified file. If &lt;code&gt;file&lt;/code&gt; is a
+directory, the basename will be the last directory element. If
+&lt;code&gt;file&lt;/code&gt; is a full-path, relative-path, or simple filename,
+the basename will be the simple file name, without any directory elements.
+&lt;/p&gt;
+&lt;p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="yes">
+ <DESCRIPTION>The path to take the basename of</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="property" REQUIRED="yes">
+ <DESCRIPTION>The name of the property to set</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="suffix" REQUIRED="no">
+ <DESCRIPTION>The suffix to remove from the resulting basename(specified either with or without the &quot;.&quot;)</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="buildnumber">
+ <DESCRIPTION>&lt;p&gt;This is a basic task that can be used to track build numbers.&lt;/p&gt;
+&lt;p&gt;It will first attempt to read a build number from a file (by default,
+&lt;code&gt;build.number&lt;/code&gt; in the current directory), then
+set the property &lt;code&gt;build.number&lt;/code&gt; to the value that was read in
+(or to &lt;code&gt;0&lt;/code&gt;, if no such value). It will then increment the
+number by one and write it back out to the file.
+(See the
+&lt;a href=&quot;../OptionalTasks/propertyfile.html&quot;&gt;PropertyFile&lt;/a&gt; task
+if you need finer control over things such as the property name or
+the number format.)
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="no; defaults to &quot;build.number&quot;">
+ <DESCRIPTION>The file to read and write the build number from/to</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="changelog">
+ <DESCRIPTION>&lt;p&gt;Generates an XML-formatted report file of the change logs recorded in a
+&lt;a href=&quot;http://www.cvshome.org/&quot; target=&quot;_top&quot;&gt;CVS&lt;/a&gt; repository. &lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="dir" REQUIRED="no; defaults to ${basedir}.">
+ <DESCRIPTION>The directory from which to run the CVS logcommand</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="destfile" REQUIRED="yes">
+ <DESCRIPTION>The file in which to write the change log report</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="usersfile" REQUIRED="no">
+ <DESCRIPTION>Property file that contains name-value pairs mappinguser IDs and names that should be used in the report in place ofthe user ID</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="daysinpast" REQUIRED="no">
+ <DESCRIPTION>Sets the number of days into the past for which thechange log information should be retrieved</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="start" REQUIRED="no">
+ <DESCRIPTION>The earliest date from which change logs are to beincluded in the report</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="end" REQUIRED="no">
+ <DESCRIPTION>The latest date to which change logs are to beincluded in the report</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="checksum">
+ <DESCRIPTION>&lt;p&gt;
+Generates checksum for files. This task can also be used to
+perform checksum verifications.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="one of either file or
+ at least one nested fileset element.">
+ <DESCRIPTION>The file to generate checksum for</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="algorithm" REQUIRED="no">
+ <DESCRIPTION>Specifies the algorithm to be used tocompute the checksum. Defaults to &quot;MD5&quot;.Other popular algorithms like &quot;SHA&quot; may be usedas well.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="provider" REQUIRED="no">
+ <DESCRIPTION>Specifies the provider of the algorithm</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="fileext" REQUIRED="no">
+ <DESCRIPTION>The generated checksum file's name will be theoriginal filename with &quot;.&quot; and fileext added to it.Defaults to the algorithm name being used.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="property" REQUIRED="no">
+ <DESCRIPTION>Specifies the name of the property to be setwith the generated checksum value. This cannot be specifiedwhen fileext is being used or when the number of filesfor which checksums is to be generated is greater than 1.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="forceoverwrite" REQUIRED="no">
+ <DESCRIPTION>Overwrite existing files even if the destinationfiles are newer. Defaults to &quot;no&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verifyproperty" REQUIRED="no">
+ <DESCRIPTION>Specifies the name of the property to be setwith &quot;true&quot; or &quot;false&quot; depending upon whetherthe generated checksum matches the existing checksum. Whenthis is set, the generated checksum is not written to a file orproperty, but rather, the content of the file or property is used tocheck against the generated checksum.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="readbuffersize" REQUIRED="no">
+ <DESCRIPTION>The size of the buffer )in bytes) to use whenreading a file. Defaults to &quot;8192&quot; - you may get abetter performance on big files if you increase this value</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="chmod">
+ <DESCRIPTION>&lt;p&gt;Changes the permissions of a file or all files inside specified directories. Right now it has effect only under Unix.
+The permissions are also UNIX style, like the argument for the chmod command.&lt;/p&gt;
+&lt;p&gt;See the section on &lt;a href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based
+tasks&lt;/a&gt;, on how the inclusion/exclusion of files works, and how to
+write patterns.&lt;/p&gt;
+&lt;p&gt;This task holds an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt; and
+supports all of FileSet's attributes and nested elements
+directly. More FileSets can be specified using nested
+&lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="exactly one of the two or nested &lt;fileset&gt; elements.">
+ <DESCRIPTION>the file or single directory of which the permissions must be changed</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dir" REQUIRED="">
+ <DESCRIPTION>the directory which holds the files whose permissions must be changed</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="perm" REQUIRED="yes">
+ <DESCRIPTION>the new permissions</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beexcluded. No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="parallel" REQUIRED="no">
+ <DESCRIPTION>process all specified files using a singlechmod command. Defaults to true</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="type" REQUIRED="no, default is file">
+ <DESCRIPTION>One of file, dir orboth. If set to file, only the permissions ofplain files are going to be changed. If set to dir, onlythe directories are considered</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="concat">
+ <DESCRIPTION>&lt;p&gt;
+Concatenates a file, or a series of files, to a single file or
+the console. The destination file will be created if it does
+not exist, though the the &lt;var&gt;append&lt;/var&gt; attribute may be
+used to alter this behavior.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt;s and/or &lt;a
+href=&quot;../CoreTypes/filelist.html&quot;&gt;FileList&lt;/a&gt;s are used to
+select which files are to be concatenated. There is no
+singular 'file' attribute to specify a single file to cat -- a
+fileset or filelist must also be used in these cases.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="destfile" REQUIRED="no
+ ">
+ <DESCRIPTION>The destination file for the concatenated stream.If not specified the console will be used instead.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="append" REQUIRED="no">
+ <DESCRIPTION>Specifies whether or not the file specified by 'destfile'should be overwritten. Defaults to &quot;no&quot;.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no">
+ <DESCRIPTION>Specifies the encoding for the input files. Please see http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.htmlfor a list of possible values. Defaults to the platform'sdefault character encoding.</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="condition">
+ <DESCRIPTION>&lt;p&gt;Sets a property if a certain condition holds true - this is a
+generalization of &lt;a href=&quot;available.html&quot;&gt;Available&lt;/a&gt; and &lt;a
+href=&quot;uptodate.html&quot;&gt;Uptodate&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;If the condition holds true, the property value is set to true by
+default; otherwise, the property is not set. You can set the value to
+something other than the default by specifying the &lt;code&gt;value&lt;/code&gt;
+attribute.&lt;/p&gt;
+&lt;p&gt;Conditions are specified as &lt;a href=&quot;#nested&quot;&gt;nested elements&lt;/a&gt;,
+you must specify exactly one condition.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="property" REQUIRED="yes">
+ <DESCRIPTION>The name of the property to set</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="value" REQUIRED="no">
+ <DESCRIPTION>The value to set the property to. Defaults to&quot;true&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="conditions">
+ <DESCRIPTION></DESCRIPTION> </TASK>
+ <TASK NAME="copy">
+ <DESCRIPTION>&lt;p&gt;Copies a file or FileSet to a new file or directory. By default, files are
+only copied if the source file is newer than the destination file,
+or when the destination file does not exist. However, you can explicitly
+overwrite files with the &lt;code&gt;overwrite&lt;/code&gt; attribute.&lt;/p&gt;
+&lt;p&gt;&lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt;s are used to select a
+set of files to copy.
+To use a &lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt;, the &lt;code&gt;todir&lt;/code&gt; attribute
+must be set.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="yes, unless a nested
+ &lt;fileset&gt; element is used.">
+ <DESCRIPTION>The file to copy</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="preservelastmodified" REQUIRED="no; defaults to false.">
+ <DESCRIPTION>Give the copied files the same last modifiedtime as the original source files.(Note: Ignored on Java 1.1</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="tofile" REQUIRED="with the file
+ attribute, either tofile or todir can be used.
+ with nested &lt;fileset&gt; elements, if the set of files
+ is greater than 1, or if only the dir attribute is
+ specified in the &lt;fileset&gt;, or if the
+ file attribute is also specified, then only
+ todir is allowed.">
+ <DESCRIPTION>The file to copy to</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="todir" REQUIRED="">
+ <DESCRIPTION>The directory to copy to</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="overwrite" REQUIRED="no; defaults to false.">
+ <DESCRIPTION>Overwrite existing files even if the destinationfiles are newer</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filtering" REQUIRED="no; defaults to false.">
+ <DESCRIPTION>Indicates whether token filtering using the globalbuild-file filters should take place during the copy.Note: Nested &lt;filterset&gt; elements willalways be used, even if this attribute is not specified, or its value isfalse (no, or off)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="flatten" REQUIRED="no; defaults to false.">
+ <DESCRIPTION>Ignore the directory structure of the source files,and copy all files into the directory specified by the todirattribute. Note that you can achieve the same effect by using aflatten mapper</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includeemptydirs" REQUIRED="no; defaults to true.">
+ <DESCRIPTION>Copy any empty directories included in the FileSet(s).</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no; defaults to true.">
+ <DESCRIPTION>Log a warning message, but do not stop the build,when the file to copy does not exist.Only meaningful when copying a single file.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no; defaults to false.">
+ <DESCRIPTION>Log the files that are being copied</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="copydir">
+ <DESCRIPTION>&lt;p&gt;Copies a directory tree from the source to the destination.&lt;/p&gt;
+&lt;p&gt;It is possible to refine the set of files that are being copied. This can be
+done with the &lt;i&gt;includes&lt;/i&gt;, &lt;i&gt;includesfile&lt;/i&gt;, &lt;i&gt;excludes&lt;/i&gt;, &lt;i&gt;excludesfile&lt;/i&gt; and &lt;i&gt;defaultexcludes&lt;/i&gt;
+attributes. With the &lt;i&gt;includes&lt;/i&gt; or &lt;i&gt;includesfile&lt;/i&gt; attribute you specify the files you want to
+have included by using patterns. The &lt;i&gt;exclude&lt;/i&gt; or &lt;i&gt;excludesfile&lt;/i&gt; attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the &lt;i&gt;defaultexcludes&lt;/i&gt; attribute, you can specify whether you
+want to use default exclusions or not. See the section on &lt;a
+href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based tasks&lt;/a&gt;, on how the
+inclusion/exclusion of files works, and how to write patterns.&lt;/p&gt;
+&lt;p&gt;This task forms an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt; and
+supports all attributes of &lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt;
+(&lt;code&gt;dir&lt;/code&gt; becomes &lt;code&gt;src&lt;/code&gt;) as well as the nested
+&lt;code&gt;&amp;lt;include&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;exclude&amp;gt;&lt;/code&gt; and
+&lt;code&gt;&amp;lt;patternset&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="src" REQUIRED="yes">
+ <DESCRIPTION>the directory to copy</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dest" REQUIRED="yes">
+ <DESCRIPTION>the directory to copy to</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beexcluded. No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filtering" REQUIRED="no">
+ <DESCRIPTION>indicates whether token filtering should take place duringthe cop</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="flatten" REQUIRED="no">
+ <DESCRIPTION>ignore directory structure of source directory,copy all files into a single directory, specified by the destattribute (default is false)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="forceoverwrite" REQUIRED="no">
+ <DESCRIPTION>overwrite existing files even if the destinationfiles are newer (default is false)</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="copyfile">
+ <DESCRIPTION>&lt;p&gt;Copies a file from the source to the destination. The file is only copied if
+the source file is newer than the destination file, or when the destination file
+does not exist.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="src" REQUIRED="yes">
+ <DESCRIPTION>the filename of the file to copy</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dest" REQUIRED="yes">
+ <DESCRIPTION>the filename of the file where to copy to</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filtering" REQUIRED="no">
+ <DESCRIPTION>indicates whether token filtering should take place duringthe cop</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="forceoverwrite" REQUIRED="no">
+ <DESCRIPTION>overwrite existing files even if the destinationfiles are newer (default is false)</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="cvs">
+ <DESCRIPTION>&lt;p&gt;Handles packages/modules retrieved from a
+&lt;a href=&quot;http://www.cvshome.org/&quot; target=&quot;_top&quot;&gt;CVS&lt;/a&gt; repository.&lt;/p&gt;
+&lt;p&gt;When doing automated builds, the &lt;a href=&quot;get.html&quot;&gt;get task&lt;/a&gt; should be
+preferred over the &lt;i&gt;checkout&lt;/i&gt; command, because of speed.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="command" REQUIRED="no, default &quot;checkout&quot;.">
+ <DESCRIPTION>the CVS command to execute</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compression" REQUIRED="no. defaults to false.">
+ <DESCRIPTION>true or false - if setto true, this is the same as compressionlevel=&quot;3</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compressionlevel" REQUIRED="no. defaults to no compression.">
+ <DESCRIPTION>A number between 1 and 9 (corresponding topossible values for CVS' -z# argument). Anyother value is treated as compression=&quot;false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="cvsroot" REQUIRED="no">
+ <DESCRIPTION>the CVSROOT variable</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="cvsrsh" REQUIRED="no">
+ <DESCRIPTION>the CVS_RSH variable</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dest" REQUIRED="no, default is project's basedir.">
+ <DESCRIPTION>the directory where the checked out files should be placed</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="package" REQUIRED="no">
+ <DESCRIPTION>the package/module to check out</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="tag" REQUIRED="no">
+ <DESCRIPTION>the tag of the package/module to check out</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="date" REQUIRED="no">
+ <DESCRIPTION>Use the most recent revision no later than the given dat</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="quiet" REQUIRED="no, default &quot;false&quot;">
+ <DESCRIPTION>suppress informational messages</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="noexec" REQUIRED="no, default to &quot;false&quot;">
+ <DESCRIPTION>report only, don't change any files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="output" REQUIRED="no, default output to ant log as msg_info.">
+ <DESCRIPTION>the file to direct standard output from the command</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="error" REQUIRED="no, default error to ant log as msg_warn.">
+ <DESCRIPTION>the file to direct standard error from the command</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="append" REQUIRED="no, default to &quot;false&quot;.">
+ <DESCRIPTION>whether to append output/error when redirecting to a file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="port" REQUIRED="no, default port 2401.">
+ <DESCRIPTION>Port used by CVS to communicate with the server</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="passfile" REQUIRED="no, default file ~/.cvspass.">
+ <DESCRIPTION>Password file to read passwords from</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no">
+ <DESCRIPTION>Stop the build process if the command exits with areturn code other than 0. Defaults to fals</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="cvspass">
+ <DESCRIPTION>&lt;p&gt;Adds entries to a .cvspass file. Adding entries to this file has the same affect as a cvs login command.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="cvsroot" REQUIRED="yes">
+ <DESCRIPTION>the CVS repository to add an entry for</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="password" REQUIRED="yes">
+ <DESCRIPTION>Password to be added to the password file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="passfile" REQUIRED="no, default is ~/.cvspass.">
+ <DESCRIPTION>Password file to add the entry to</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="cvstagdiff">
+ <DESCRIPTION>&lt;p&gt;Generates an XML-formatted report file of the changes between two tags or dates recorded in a
+&lt;a href=&quot;http://www.cvshome.org/&quot; target=&quot;_top&quot;&gt;CVS&lt;/a&gt; repository. &lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="starttag" REQUIRED="exactly one of the two.">
+ <DESCRIPTION>The earliest tag from which diffs are to beincluded in the report</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="startdate" REQUIRED="">
+ <DESCRIPTION>The earliest date from which diffs are to beincluded in the report</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="endtag" REQUIRED="exactly one of the two.">
+ <DESCRIPTION>The latest tag from which diffs are to beincluded in the report</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="enddate" REQUIRED="">
+ <DESCRIPTION>The latest date from which diffs are to beincluded in the report</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="destfile" REQUIRED="yes">
+ <DESCRIPTION>The file in which to write the diff report</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="rootdir" REQUIRED="no">
+ <DESCRIPTION>Root directory for the package, if different from the package name</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="delete">
+ <DESCRIPTION>&lt;p&gt;Deletes a single file, a specified directory and all its files and
+subdirectories, or a set of files specified by one or more
+&lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt;s.
+When specifying a set of files, empty directories are &lt;i&gt;not&lt;/i&gt; removed by
+default.
+To remove empty directories, use the &lt;code&gt;includeEmptyDirs&lt;/code&gt; attribute.
+&lt;/p&gt;
+&lt;p&gt;
+If you use this task to delete temporary files created by editors
+and it doesn't seem to work, read up on the
+&lt;a href=&quot;../dirtasks.html#defaultexcludes&quot;&gt;default exclusion set&lt;/a&gt;
+in &lt;strong&gt;Directory-based Tasks&lt;/strong&gt;, and see the
+&lt;code&gt;defaultexcludes&lt;/code&gt; attribute below.
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="at least one of the two,
+ unless a &lt;fileset&gt; is specified.">
+ <DESCRIPTION>The file to delete, specified as either the simplefilename (if the file exists in the current base directory), arelative-path filename, or a full-path filename</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dir" REQUIRED="">
+ <DESCRIPTION>The directory to delete, including all its files andsubdirectoriesNote: dir is not usedto specify a directory name for file; fileand dir are independent of each otherWARNING: Do not set dir to&quot;.&quot;, &quot;${basedir}&quot;,or the full-pathname equivalent unless you truly intend torecursively remove the entire contents of the current base directory(and the base directory itself, if different from the current workingdirectory)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no">
+ <DESCRIPTION>Show the name of each deleted file(&quot;true&quot;/&quot;false&quot;).Default is &quot;false&quot; when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="quiet" REQUIRED="no">
+ <DESCRIPTION>If the specified file or directory does not exist,do not display a diagnostic message (unless Anthas been invoked with the &amp;#x2011;verbose or&amp;#x2011;debug switches) or modify the exit status toreflect an error.When set to &quot;true&quot;, if a file or directory cannot be deleted,no error is reported. This setting emulates the -f option to the Unix rm command.Default is &quot;false&quot;.Setting this to &quot;true&quot; implies settingfailonerror to &quot;false&quot;.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no">
+ <DESCRIPTION>Controls whether an error (such as a failure to delete a file)stops the build or is merely reported to the screen.Only relevant if quiet is &quot;false&quot;.Default is &quot;true&quot;.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includeemptydirs" REQUIRED="no">
+ <DESCRIPTION>Set to &quot;true&quot; to delete empty directories whenusing filesets. Default is &quot;false&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>Deprecated. Use &lt;fileset&gt;.Comma- or space-separated list of patterns offiles that must be deleted. All files are relative to the directoryspecified in dir.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>Deprecated. Use &lt;fileset&gt;.The name of a file. Each line ofthis file is taken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>Deprecated. Use &lt;fileset&gt;.Comma- or space-separated list of patterns offiles that must be excluded from the deletion list.All files are relative to the directory specified in dir.No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>Deprecated. Use &lt;fileset&gt;.The name of a file. Each line ofthis file is taken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>Indicates whether default excludesshould be used or not (&quot;yes&quot;/&quot;no&quot;).Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="deltree">
+ <DESCRIPTION>&lt;p&gt;Deletes a directory with all its files and subdirectories.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="dir" REQUIRED="yes">
+ <DESCRIPTION>the directory to delete</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="dependset">
+ <DESCRIPTION>&lt;p&gt;
+The dependset task compares a set of source files with a set of target
+files. If any of the source files is more recent than any of
+the target files, all of the target files are removed.
+&lt;/p&gt;
+&lt;p&gt;
+Source files and target files are specified via nested &lt;a
+href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSets&lt;/a&gt; and/or nested &lt;a
+href=&quot;../CoreTypes/filelist.html&quot;&gt;FileLists&lt;/a&gt;. Arbitrarily many
+source and target filesets/filelists may be specified, but at
+least one filelist/fileset is required for both sources and targets.
+&lt;/p&gt;
+&lt;p&gt;
+Use a FileSet when you want to use wildcard include or exclude
+patterns and don't care about missing files. Use a FileList when you
+want to consider the non-existence of a file as if it were out of
+date. If there are any non-existing files in any source or target
+FileList, all target files will be removed.
+&lt;/p&gt;
+&lt;p&gt;
+DependSet is useful to capture dependencies that are not or cannot be
+determined algorithmically. For example, the &amp;lt;style&amp;gt; task only
+compares the source XML file and XSLT stylesheet against the target
+file to determined whether to restyle the source. Using dependset you
+can extend this dependency checking to include a DTD or XSD file as
+well as other stylesheets imported by the main stylesheet.
+&lt;/p&gt;
+</DESCRIPTION> </TASK>
+ <TASK NAME="dirname">
+ <DESCRIPTION>&lt;p&gt;
+Task to determine the directory path of a specified file.
+&lt;/p&gt;
+&lt;p&gt;
+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 the specified file is a path that ends in a filename,
+the filename will be dropped. If the specified file is just a filename,
+the directory will be the current directory.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="yes">
+ <DESCRIPTION>The path to take the dirname of</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="property" REQUIRED="yes">
+ <DESCRIPTION>The name of the property to set</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="ear">
+ <DESCRIPTION>&lt;p&gt;An extension of the &lt;a href=&quot;jar.html&quot;&gt;Jar&lt;/a&gt; task with special
+treatment for files that should end up in an Enterprise Application archive.&lt;/p&gt;
+&lt;p&gt;(The Ear task is a shortcut for specifying the particular layout of a EAR file.
+The same thing can be accomplished by using the &lt;i&gt;prefix&lt;/i&gt; and &lt;i&gt;fullpath&lt;/i&gt;
+attributes of zipfilesets in a Zip or Jar task.)&lt;/p&gt;
+&lt;p&gt;The extended zipfileset element from the zip task (with attributes &lt;i&gt;prefix&lt;/i&gt;, &lt;i&gt;fullpath&lt;/i&gt;, and &lt;i&gt;src&lt;/i&gt;) is available in the Ear task.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="destfile" REQUIRED="yes">
+ <DESCRIPTION>the EAR file to create</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="appxml" REQUIRED="yes, unless update is set to true">
+ <DESCRIPTION>The deployment descriptor to use (META-INF/application.xml)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="basedir" REQUIRED="no">
+ <DESCRIPTION>the directory from which to jar the files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compress" REQUIRED="no">
+ <DESCRIPTION>Not only store data but also compress them, defaults to tru</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no">
+ <DESCRIPTION>The character encoding to use for filenamesinside the archive. Defaults to UTF8. It is notrecommended to change this value as the created archive will mostlikely be unreadable for Java otherwise</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filesonly" REQUIRED="no">
+ <DESCRIPTION>Store only file entries, defaults to fals</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beexcluded. No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="manifest" REQUIRED="no">
+ <DESCRIPTION>the manifest file to use</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="update" REQUIRED="no">
+ <DESCRIPTION>indicates whether to update or overwritethe destination file if it already exists</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="duplicate" REQUIRED="no">
+ <DESCRIPTION>behavior when a duplicate file is found. Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;. The default value is &quot;add&quot;. </DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="echo">
+ <DESCRIPTION>&lt;p&gt;Echoes a message to the current loggers and listeners which
+means &lt;tt&gt;System.out&lt;/tt&gt; unless overridden. A &lt;tt&gt;level&lt;/tt&gt;
+can be specified, which controls at what logging level the message is
+filtered at.
+&lt;p&gt;
+The task can also echo to a file, in which case the option to append rather
+than overwrite the file is available, and the &lt;tt&gt;level&lt;/tt&gt; option is
+ignored&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="message" REQUIRED="yes, unless data is included in a
+ character section within this element.">
+ <DESCRIPTION>the message to echo</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="file" REQUIRED="no">
+ <DESCRIPTION>the file to write the message to</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="append" REQUIRED="no - default is false.">
+ <DESCRIPTION>Append to an existing file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="level" REQUIRED="no - default is &quot;warning&quot;.">
+ <DESCRIPTION>Control the level at which this message is reported.One of &quot;error&quot;, &quot;warning&quot;, &quot;info&quot;, &quot;verbose&quot;, &quot;debug</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="exec">
+ <DESCRIPTION>&lt;p&gt;Executes a system command. When the &lt;i&gt;os&lt;/i&gt; attribute is specified, then
+the command is only executed when Ant is run on one of the specified operating
+systems.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="command" REQUIRED="exactly one of the two.">
+ <DESCRIPTION>the command to execute with all command linearguments. deprecated, use executable and nested&lt;arg&gt; elements instead</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="executable" REQUIRED="">
+ <DESCRIPTION>the command to execute without any command linearguments</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dir" REQUIRED="no">
+ <DESCRIPTION>the directory in which the command should be executed</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="os" REQUIRED="no">
+ <DESCRIPTION>list of Operating Systems on which the command may beexecuted. If the current OS's name is contained in this list, the command willbe executed. The OS's name is determined by the Java Virtual machine and is setin the &quot;os.name&quot; system property</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="output" REQUIRED="no">
+ <DESCRIPTION>the file to which the output of the command should beredirected</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="append" REQUIRED="no">
+ <DESCRIPTION>whether output should be appended to or overwritean existing file. Defaults to false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="outputproperty" REQUIRED="no">
+ <DESCRIPTION>the name of a property in which the output of the command should be stored</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="resultproperty" REQUIRED="no">
+ <DESCRIPTION>the name of a property in which the return code of the command should be stored. Only of interest if failonerror=fals</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="timeout" REQUIRED="no">
+ <DESCRIPTION>Stop the command if it doesn't finish within thespecified time (given in milliseconds)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no">
+ <DESCRIPTION>Stop the buildprocess if the command exits with areturncode other than 0. Defaults to fals</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failifexecutionfails" REQUIRED="no">
+ <DESCRIPTION>Stop the build if we can't start the program.Defaults to true.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="newenvironment" REQUIRED="no, default is false">
+ <DESCRIPTION>Do not propagate old environment when new environmentvariables are specified</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="vmlauncher" REQUIRED="no, default is true">
+ <DESCRIPTION>Run command using the Java VM's execution facilitieswhere available. If set to false the underlying OS's shell,either directly or through the antRun scripts, will be used.Under some operating systems, this gives access to facilitiesnot normally available through the VM including, under Windows,being able to execute scripts, rather than their associatedinterpreter. If you want to specify the name of theexecutable as a relative path to the directory given by thedir attribute, it may become necessary to set vmlauncher tofalse as well</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="fail">
+ <DESCRIPTION>&lt;p&gt;Exits the current build (just throwing a BuildException), optionally printing additional information.&lt;/p&gt;
+&lt;p&gt;The message of the Exception can be set via the message attribute
+or character data nested into the element.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="message" REQUIRED="no">
+ <DESCRIPTION>A message giving further information on why the build exite</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="if" REQUIRED="no">
+ <DESCRIPTION>Only fail if a property of the given name existsin the current projec</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="unless" REQUIRED="no">
+ <DESCRIPTION>Only fail if a property of the given name doesn'texist in the current projec</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="filter">
+ <DESCRIPTION>&lt;p&gt;Sets a token filter for this project or read multiple token filter from
+an input file and sets these as filters.
+Token filters are used by all tasks that perform file copying operations
+through the Project commodity methods.&lt;/p&gt;
+&lt;p&gt;Note 1: the token string must not contain the separators chars (@).&lt;br&gt;
+Note 2: Either token and value attributes must be provided, or only the
+filtersfile attribute.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="token" REQUIRED="yes*">
+ <DESCRIPTION>the token string without </DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="value" REQUIRED="yes*">
+ <DESCRIPTION>the string that should be put to replace the token when the file is copie</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filtersfile" REQUIRED="yes*">
+ <DESCRIPTION>The file from which the filters must be read. This file must be a formatted as a property file.</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="fixcrlf">
+ <DESCRIPTION>&lt;p&gt;
+Adjusts a text file to local conventions.
+&lt;/p&gt;
+&lt;p&gt;
+The set of files to be adjusted can be refined with the
+&lt;i&gt;includes&lt;/i&gt;, &lt;i&gt;includesfile&lt;/i&gt;, &lt;i&gt;excludes&lt;/i&gt;,
+&lt;i&gt;excludesfile&lt;/i&gt; and &lt;i&gt;defaultexcludes&lt;/i&gt;
+attributes. Patterns provided through the &lt;i&gt;includes&lt;/i&gt; or
+&lt;i&gt;includesfile&lt;/i&gt; attributes specify files to be
+included. Patterns provided through the &lt;i&gt;exclude&lt;/i&gt; or
+&lt;i&gt;excludesfile&lt;/i&gt; attribute specify files to be
+excluded. Additionally, default exclusions can be specified with
+the &lt;i&gt;defaultexcludes&lt;/i&gt; attribute. See the section on &lt;a
+href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based
+tasks&lt;/a&gt;, for details of file inclusion/exclusion patterns
+and their usage.
+&lt;/p&gt;
+&lt;p&gt;This task forms an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt; and
+supports all attributes of &lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt;
+(&lt;code&gt;dir&lt;/code&gt; becomes &lt;code&gt;srcdir&lt;/code&gt;) as well as the nested
+&lt;code&gt;&amp;lt;include&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;exclude&amp;gt;&lt;/code&gt; and
+&lt;code&gt;&amp;lt;patternset&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;
+&lt;p&gt;
+The output file is only written if it is a new file, or if it
+differs from the existing file. This prevents spurious
+rebuilds based on unchanged files which have been regenerated
+by this task.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="srcdir" REQUIRED="yes">
+ <DESCRIPTION>Where to find the files to be fixed up</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="destdir" REQUIRED="no">
+ <DESCRIPTION>Where to place the corrected files. Defaults tosrcDir (replacing the original file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beexcluded. No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="eol" REQUIRED="no">
+ <DESCRIPTION>Specifies how end-of-line (EOL) characters are to behandled. The EOL characters are CR, LF and the pair CRLF.Valid values for this property are:asis: leave EOL characters alonecr: convert all EOLs to a single CRlf: convert all EOLs to a single LFcrlf: convert all EOLs to the pair CRLFDefault is based on the platform on which you are runningthis task. For Unix platforms, the default is &quot;lf&quot;.For DOS based systems (including Windows), the default is&quot;crlf&quot;. For Mac OS, the default is &quot;cr&quot;.This is the preferred method for specifying EOL. The&quot;cr&quot; attribute (see below) isnow deprecated.N.B.: One special case is recognized. The threecharacters CR-CR-LF are regarded as a single EOL.Unless this property is specified as &quot;asis&quot;,this sequence will be converted into the specified EOLtype.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="cr" REQUIRED="no">
+ <DESCRIPTION>Deprecated. Specifies how CR characters areto be handled at end-of-line (EOL). Valid values for thisproperty are:asis: leave EOL characters alone.add: add a CR before any single LF characters. Theintent is to convert all EOLs to the pair CRLF.remove: remove all CRs from the file. The intent isto convert all EOLs to a single LF.Default is based on the platform on which you are runningthis task. For Unix platforms, the default is &quot;remove&quot;.For DOS based systems (including Windows), the default is&quot;add&quot;.N.B.: One special case is recognized. The threecharacters CR-CR-LF are regarded as a single EOL.Unless this property is specified as &quot;asis&quot;,this sequence will be converted into the specified EOLtype.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="javafiles" REQUIRED="no">
+ <DESCRIPTION>Used only in association with the&quot;tab&quot; attribute (see below), thisboolean attribute indicates whether the fileset is a setof java source files(&quot;yes&quot;/&quot;no&quot;). Defaults to&quot;no&quot;. See notes in section on &quot;tab&quot;.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="tab" REQUIRED="no">
+ <DESCRIPTION>Specifies how tab characters are to be handled. Validvalues for this property are:add: convert sequences of spaces which span a tab stop to tabsasis: leave tab and space characters aloneremove: convert tabs to spacesDefault for this parameter is &quot;asis&quot;.N.B.: When the attribute&quot;javafiles&quot; (see above) is&quot;true&quot;, literal TAB characters occurringwithin Java string or character constants are nevermodified. This functionality also requires therecognition of Java-style comments.N.B.: There is an incompatibility between thisand the previous version in the handling of whitespace at the end of lines. This version doesnot remove trailing whitespace on lines.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="tablength" REQUIRED="no">
+ <DESCRIPTION>TAB character interval. Valid values are between2 and 80 inclusive. The default for this parameter is 8</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="eof" REQUIRED="no">
+ <DESCRIPTION>Specifies how DOS end of file (control-Z) characters areto be handled. Valid values for this property are:add: ensure that there is an EOF character at the end of the fileasis: leave EOF characters aloneremove: remove any EOF character found at the endDefault is based on the platform on which you are running this task.For Unix platforms, the default is remove. For DOS based systems(including Windows), the default is asis.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no - defaults to default jvm encoding">
+ <DESCRIPTION>The encoding of the file</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="genkey">
+ <DESCRIPTION>&lt;p&gt;Generates a key in keystore. This task needs Java1.2 or later&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="alias" REQUIRED="yes.">
+ <DESCRIPTION>the alias to add unde</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="storepass" REQUIRED="yes.">
+ <DESCRIPTION>password for keystore integrity. Mustbe at least 6 characters lon</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="keystore" REQUIRED="no">
+ <DESCRIPTION>keystore locatio</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="storetype" REQUIRED="no">
+ <DESCRIPTION>keystore typ</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="keypass" REQUIRED="no">
+ <DESCRIPTION>password for private key (if different</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="sigalg" REQUIRED="no">
+ <DESCRIPTION>the algorithm to use in signin</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="keyalg" REQUIRED="no">
+ <DESCRIPTION>the method to use when generating name-value pai</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no">
+ <DESCRIPTION>(true | false) verbose output when signin</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dname" REQUIRED="yes if dname element unspecified">
+ <DESCRIPTION>The distinguished name for entit</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="validity" REQUIRED="no">
+ <DESCRIPTION>(integer) indicates how many days certificate is vali</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="keysize" REQUIRED="no">
+ <DESCRIPTION>(integer) indicates the size of key generate</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="get">
+ <DESCRIPTION>&lt;p&gt;Gets a file from a URL. When the verbose option is &amp;quot;on&amp;quot;, this task
+displays a '.' for every 100 Kb retrieved. Any URL schema supported by
+the runtime is valid here, including http:, ftp: and jar:;
+https: is only valid if the appropriate support is added to the pre-1.4 Java
+runtimes.
+&lt;/p&gt;
+&lt;p&gt;This task should be preferred above the &lt;a href=&quot;cvs.html&quot;&gt;CVS task&lt;/a&gt; when
+fetching remote content. CVS is significantly slower than loading a compressed
+archive compared to http/ftp.&lt;/p&gt;
+The &lt;i&gt;usetimestamp&lt;/i&gt; option enables you to control downloads so that the remote file is
+only fetched if newer than the local copy. If there is no local copy, the download always takes
+place. When a file is downloaded, the timestamp of the downloaded file is set to the remote timestamp,
+if the JVM is Java1.2 or later.
+NB: This timestamp facility only works on downloads using the HTTP protocol.
+&lt;p&gt;
+A username and password can be specified, in which case basic 'slightly encoded
+plain text' authentication is used. This is only a secure authentication
+mechanism over an HTTPS link.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="src" REQUIRED="yes">
+ <DESCRIPTION>the URL from which to retrieve a file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dest" REQUIRED="yes">
+ <DESCRIPTION>the file where to store the retrieved file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no; default &quot;false&quot;">
+ <DESCRIPTION>show verbose progress information (&quot;on&quot;/&quot;off&quot;)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="ignoreerrors" REQUIRED="no; default &quot;false&quot;">
+ <DESCRIPTION>Log errors but don't treat as fatal</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="usetimestamp" REQUIRED="no; default &quot;false&quot;">
+ <DESCRIPTION>conditionally download a file based on the timestamp of thelocal copy. HTTP onl</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="username" REQUIRED="if password is set">
+ <DESCRIPTION>username for 'BASIC' http authenticatio</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="password" REQUIRED="if username is set">
+ <DESCRIPTION>password: required</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="input">
+ <DESCRIPTION>&lt;p&gt;Allows user interaction during the build process by prompting for
+input. To do so, it uses the configured
+&lt;a href=&quot;../inputhandler.html&quot;&gt;InputHandler&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;The prompt can be set via the message attribute or as character
+data nested into the element.&lt;/p&gt;
+&lt;p&gt;Optinonally a set of valid imput arguments can be defined via the
+validargs attribute. Input task will no accept value that don't match
+one of the predefined.&lt;/p&gt;
+&lt;p&gt;Optionally a property can be created from the value entered by the
+user. This property can then be used during the following build
+run. Input behaves according to &lt;a href=&quot;property.html&quot;&gt;property
+task&lt;/a&gt; which means that existing properties cannot be overriden.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="message" REQUIRED="no">
+ <DESCRIPTION>the Message which gets displayed to the userduring the build run</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="validargs" REQUIRED="no">
+ <DESCRIPTION>comma separated String containing valid inputarguments. If set, input task will reject any input not definedhere. Validargs are compared case sensitive. If you want 'a' and'A' to be accepted you will need to define both arguments withinvalidargs</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="addproperty" REQUIRED="no">
+ <DESCRIPTION>the name of a property to be created frominput. Behaviour is equal to propertytask which means that existing properties cannot beoverriden</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="jar">
+ <DESCRIPTION>&lt;p&gt;Jars a set of files.&lt;/p&gt;
+&lt;p&gt;The &lt;i&gt;basedir&lt;/i&gt; attribute is the reference directory from where to jar.&lt;/p&gt;
+&lt;p&gt;Note that file permissions will not be stored in the resulting jarfile.&lt;/p&gt;
+&lt;p&gt;It is possible to refine the set of files that are being jarred. This can be
+done with the &lt;i&gt;includes&lt;/i&gt;, &lt;i&gt;includesfile&lt;/i&gt;, &lt;i&gt;excludes&lt;/i&gt;, &lt;i&gt;excludesfile&lt;/i&gt; and &lt;i&gt;defaultexcludes&lt;/i&gt;
+attributes. With the &lt;i&gt;includes&lt;/i&gt; or &lt;i&gt;includesfile&lt;/i&gt; attribute you specify the files you want to
+have included by using patterns. The &lt;i&gt;exclude&lt;/i&gt; or &lt;i&gt;excludesfile&lt;/i&gt; attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the &lt;i&gt;defaultexcludes&lt;/i&gt; attribute, you can specify whether you
+want to use default exclusions or not. See the section on &lt;a
+href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based tasks&lt;/a&gt;, on how the
+inclusion/exclusion of files works, and how to write patterns.&lt;/p&gt;
+&lt;p&gt;This task forms an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt; and
+supports all attributes of &lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt;
+(&lt;code&gt;dir&lt;/code&gt; becomes &lt;code&gt;basedir&lt;/code&gt;) as well as the nested
+&lt;code&gt;&amp;lt;include&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;exclude&amp;gt;&lt;/code&gt; and
+&lt;code&gt;&amp;lt;patternset&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;
+&lt;p&gt;You can also use nested file sets for more flexibility, and specify
+multiple ones to merge together different trees of files into one JAR.
+The extended fileset and groupfileset attributes from the zip task are
+also available in the jar task.
+See the &lt;a href=&quot;zip.html&quot;&gt;Zip&lt;/a&gt; task for more details and examples.&lt;/p&gt;
+&lt;p&gt;If the manifest is omitted, a simple one will be supplied by Ant.&lt;/p&gt;
+&lt;p&gt;The &lt;code&gt;update&lt;/code&gt; parameter controls what happens if the
+JAR file already exists. When set to &lt;code&gt;yes&lt;/code&gt;, the JAR file is
+updated with the files specified. When set to &lt;code&gt;no&lt;/code&gt; (the
+default) the JAR file is overwritten. An example use of this is
+provided in the &lt;a href=&quot;zip.html&quot;&gt;Zip task documentation&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;(The Jar task is a shortcut for specifying the manifest file of a JAR file.
+The same thing can be accomplished by using the &lt;i&gt;fullpath&lt;/i&gt;
+attribute of a zipfileset in a Zip task. The one difference is that if the
+&lt;i&gt;manifest&lt;/i&gt; attribute is not specified, the Jar task will
+include an empty one for you.)&lt;/p&gt;
+&lt;p&gt;Manifests are processed by the Jar task according to the
+&lt;a href=&quot;http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html&quot;&gt;Jar file specification.&lt;/a&gt;
+Note in particular that this may result in manifest lines greater than 72 bytes
+being wrapped and continued on the next line.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="destfile" REQUIRED="yes">
+ <DESCRIPTION>the JAR file to create</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="basedir" REQUIRED="no">
+ <DESCRIPTION>the directory from which to jar the files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compress" REQUIRED="no">
+ <DESCRIPTION>Not only store data but also compress them, defaults to tru</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no">
+ <DESCRIPTION>The character encoding to use for filenamesinside the archive. Defaults to UTF8. It is notrecommended to change this value as the created archive will mostlikely be unreadable for Java otherwise</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filesonly" REQUIRED="no">
+ <DESCRIPTION>Store only file entries, defaults to fals</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beexcluded. No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="manifest" REQUIRED="no">
+ <DESCRIPTION>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.M</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="update" REQUIRED="no">
+ <DESCRIPTION>indicates whether to update or overwritethe destination file if it already exists</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="whenempty" REQUIRED="no">
+ <DESCRIPTION>behavior when no files match. Valid values are &quot;fail&quot;, &quot;skip&quot;, and &quot;create&quot;. Default is &quot;skip&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="duplicate" REQUIRED="no">
+ <DESCRIPTION>behavior when a duplicate file is found. Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;. The default value is &quot;add&quot;. </DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="index" REQUIRED="no">
+ <DESCRIPTION>whether to create an index list to speed up classloading. This is a JDK 1.3+ specific feature. Defaults to false.</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="java">
+ <DESCRIPTION>&lt;p&gt;Executes a Java class within the running (Ant) VM or forks another VM if
+specified.&lt;/p&gt;
+&lt;p&gt;
+If odd things go wrong when you run this task, set fork=&quot;true&quot; to use a new
+JVM.
+</DESCRIPTION>
+ <ATTRIBUTE NAME="classname" REQUIRED="either jar or classname">
+ <DESCRIPTION>the Java class to execute</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="jar" REQUIRED="either jar or classname">
+ <DESCRIPTION>the location of the jar file to execute (must have a Main-Class entry in the manifest). Fork must be set to true if this option is selected</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="args" REQUIRED="no">
+ <DESCRIPTION>the arguments for the class that isexecuted. deprecated, use nested &lt;arg&gt;elements instead</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>the classpath to use</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpathref" REQUIRED="no">
+ <DESCRIPTION>the classpath to use, given as reference to a PATH defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="fork" REQUIRED="no">
+ <DESCRIPTION>if enabled triggers the class execution in another VM(disabled by default</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="jvm" REQUIRED="no">
+ <DESCRIPTION>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="jvmargs" REQUIRED="no">
+ <DESCRIPTION>the arguments to pass to the forked VM (ignoredif fork is disabled). deprecated, use nested&lt;jvmarg&gt; elements instead</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="maxmemory" REQUIRED="no">
+ <DESCRIPTION>Max amount of memory to allocate to the forked VM(ignored if fork is disabled</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no">
+ <DESCRIPTION>Stop the buildprocess if the command exits with areturncode other than 0. Default is &quot;false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dir" REQUIRED="no">
+ <DESCRIPTION>The directory to invoke the VM in. (ignored iffork is disabled</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="output" REQUIRED="no">
+ <DESCRIPTION>Name of a file to write the output to</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="append" REQUIRED="no">
+ <DESCRIPTION>whether output should be appended to or overwritean existing file. Defaults to false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="newenvironment" REQUIRED="no">
+ <DESCRIPTION>Do not propagate old environment when newenvironment variables are specified. Default is &quot;false&quot;(ignored if fork is disabled)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="timeout" REQUIRED="no">
+ <DESCRIPTION>Stop the command if it doesn't finish within thespecified time (given in milliseconds). It is highlyrecommended to use this feature only if fork is enabled</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="javac">
+ <DESCRIPTION>&lt;p&gt;Compiles a Java source tree.&lt;/p&gt;
+&lt;p&gt;The source and destination directory will be recursively scanned for Java
+source files to compile. Only Java files that have no corresponding
+&lt;code&gt;.class&lt;/code&gt; file
+or where the class file is older than the
+&lt;code&gt;.java&lt;/code&gt; file will be compiled.&lt;/p&gt;
+&lt;p&gt;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 therefore
+will have no knowledge about nested classes, classes that are named different
+from the source file, and so on. See the
+&lt;a href=&quot;../OptionalTasks/depend.html&quot;&gt;&lt;code&gt;&amp;lt;depend&amp;gt;&lt;/code&gt;&lt;/a&gt; task
+for dependency checking based on other than just
+existence/modification times.&lt;/p&gt;
+&lt;p&gt;When the source files are part of a package, the directory structure of
+the source tree should follow the package
+hierarchy.&lt;/p&gt;
+&lt;p&gt;It is possible to refine the set of files that are being compiled.
+This can be done with the &lt;code&gt;includes&lt;/code&gt;, &lt;code&gt;includesfile&lt;/code&gt;,
+&lt;code&gt;excludes&lt;/code&gt;, and &lt;code&gt;excludesfile&lt;/code&gt;
+attributes. With the &lt;code&gt;includes&lt;/code&gt; or
+&lt;code&gt;includesfile&lt;/code&gt; attribute, you specify the files you want to
+have included.
+The &lt;code&gt;exclude&lt;/code&gt; or &lt;code&gt;excludesfile&lt;/code&gt; attribute is used
+to specify
+the files you want to have excluded. In both cases, the list of files
+can be specified by either the filename, relative to the directory(s) specified
+in the &lt;code&gt;srcdir&lt;/code&gt; attribute or nested &lt;code&gt;&amp;lt;src&amp;gt;&lt;/code&gt;
+element(s), or by using wildcard patterns. See the section on
+&lt;a href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory-based tasks&lt;/a&gt;,
+for information on how the
+inclusion/exclusion of files works, and how to write wildcard patterns.&lt;/p&gt;
+&lt;p&gt;It is possible to use different compilers. This can be specified by
+either setting the global &lt;code&gt;build.compiler&lt;/code&gt; property, which will
+affect all &lt;code&gt;&amp;lt;javac&amp;gt;&lt;/code&gt; tasks throughout the build, or by
+setting the &lt;code&gt;compiler&lt;/code&gt; attribute, specific to the current
+&lt;code&gt;&amp;lt;javac&amp;gt;&lt;/code&gt; task.
+&lt;a name=&quot;compilervalues&quot;&gt;Valid values for either the
+&lt;code&gt;build.compiler&lt;/code&gt; property or the &lt;code&gt;compiler&lt;/code&gt;
+attribute are:&lt;/a&gt;&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;&lt;code&gt;classic&lt;/code&gt; (the standard compiler of JDK 1.1/1.2) &amp;ndash;
+&lt;code&gt;javac1.1&lt;/code&gt; and
+&lt;code&gt;javac1.2&lt;/code&gt; can be used as aliases.&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;modern&lt;/code&gt; (the standard compiler of JDK 1.3/1.4) &amp;ndash;
+&lt;code&gt;javac1.3&lt;/code&gt; and
+&lt;code&gt;javac1.4&lt;/code&gt; can be used as aliases.&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;jikes&lt;/code&gt; (the &lt;a
+href=&quot;http://oss.software.ibm.com/developerworks/opensource/jikes/&quot; target=&quot;_top&quot;&gt;Jikes&lt;/a&gt;
+compiler).&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;jvc&lt;/code&gt; (the Command-Line Compiler from Microsoft's SDK
+for Java / Visual J++) &amp;ndash; &lt;code&gt;microsoft&lt;/code&gt; can be used
+as an alias.&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;kjc&lt;/code&gt; (the &lt;a href=&quot;http://www.dms.at/kopi/&quot; target=&quot;_top&quot;&gt;kopi&lt;/a&gt;
+compiler).&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;gcj&lt;/code&gt; (the gcj compiler from gcc).&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;sj&lt;/code&gt; (Symantec java compiler) &amp;ndash;
+&lt;code&gt;symantec&lt;/code&gt; can be used as an alias.&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;extJavac&lt;/code&gt; (run either modern or classic in a JVM of
+its own).&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;The default is &lt;code&gt;javac1.x&lt;/code&gt; with &lt;code&gt;x&lt;/code&gt; depending
+on the JDK version you use while you are running Ant.
+If you wish to use a different compiler interface than those
+supplied, you can write a class that implements the CompilerAdapter interface
+(&lt;code&gt;package org.apache.tools.ant.taskdefs.compilers&lt;/code&gt;). Supply the full
+classname in the &lt;code&gt;build.compiler&lt;/code&gt; property or the
+&lt;code&gt;compiler&lt;/code&gt; attribute.
+&lt;/p&gt;
+&lt;p&gt;The fork attribute overrides the &lt;code&gt;build.compiler&lt;/code&gt; property
+or &lt;code&gt;compiler&lt;/code&gt; attribute setting and
+expects a JDK1.1 or higher to be set in &lt;code&gt;JAVA_HOME&lt;/code&gt;.
+&lt;/p&gt;
+&lt;p&gt;You can also use the &lt;code&gt;compiler&lt;/code&gt; attribute to tell Ant
+which JDK version it shall assume when it puts together the command
+line switches - even if you set &lt;code&gt;fork=&amp;quot;true&amp;quot;&lt;/code&gt;.
+This is useful if you want to run the compiler of JDK 1.1 while you
+current JDK is 1.2+. If you use
+&lt;code&gt;compiler=&amp;quot;javac1.1&amp;quot;&lt;/code&gt; and (for example)
+&lt;code&gt;depend=&amp;quot;true&amp;quot;&lt;/code&gt; Ant will use the command line
+switch &lt;code&gt;-depend&lt;/code&gt; instead of &lt;code&gt;-Xdepend&lt;/code&gt;.&lt;/p&gt;
+&lt;p&gt;This task will drop all entries that point to non-existent
+files/directories from the classpath it passes to the compiler.&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;Windows Note:&lt;/strong&gt;When the modern compiler is used
+in unforked mode on Windows, it locks up the files present in the
+classpath of the &lt;code&gt;&amp;lt;javac&amp;gt;&lt;/code&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.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="srcdir" REQUIRED="yes, unless nested &lt;src&gt; elements are present.">
+ <DESCRIPTION>Location of the java files. (See thenote below.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="destdir" REQUIRED="no">
+ <DESCRIPTION>Location to store the class files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>Comma- or space-separated list of files (may be specified usingwildcard patterns) that must beincluded; all .java files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>The name of a file that contains a list of files toinclude (may be specified using wildcard patterns)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>Comma- or space-separated list of files (may be specified usingwildcard patterns) that must be excluded; no files (except defaultexcludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>The name of a file that contains a list of files toexclude (may be specified using wildcard patterns)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>The classpath to use</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="sourcepath" REQUIRED="no">
+ <DESCRIPTION>The sourcepath to use; defaults to the value of the srcdir attribute (or nested &lt;src&gt; elements).To suppress the sourcepath switch, use sourcepath=&quot;&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="bootclasspath" REQUIRED="no">
+ <DESCRIPTION>Location of bootstrap class files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpathref" REQUIRED="no">
+ <DESCRIPTION>The classpath to use, given as areference to a path defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="sourcepathref" REQUIRED="no">
+ <DESCRIPTION>The sourcepath to use, given as areference to a path defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="bootclasspathref" REQUIRED="no">
+ <DESCRIPTION>Location of bootstrap class files, given as areference to a path defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="extdirs" REQUIRED="no">
+ <DESCRIPTION>Location of installed extensions</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no">
+ <DESCRIPTION>Encoding of source files. (Note: gcj doesn't supportthis option yet.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="nowarn" REQUIRED="no">
+ <DESCRIPTION>Indicates whether the -nowarn switchshould be passed to the compiler; defaults to off</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="debug" REQUIRED="no">
+ <DESCRIPTION>Indicates whether source should be compiled with debuginformation; defaults to off</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="debuglevel" REQUIRED="no">
+ <DESCRIPTION>Keyword list to be appended to the -gcommand-line switch. This will be ignored by all implementations exceptmodern and classic(ver &gt;= 1.2).Legal values are none or a comma-separated list of thefollowing keywords:lines, vars, and source.If debuglevel is not specified, by default,:none will beappended to -g. If debug is not turned on,this attribute will be ignored.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="optimize" REQUIRED="no">
+ <DESCRIPTION>Indicates whether source should be compiled withoptimization; defaults to off</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="deprecation" REQUIRED="no">
+ <DESCRIPTION>Indicates whether source should be compiled withdeprecation information; defaults to off</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="target" REQUIRED="no">
+ <DESCRIPTION>Generate class files for specific VM version(e.g., 1.1 or 1.2). Note that thedefault value depends on the JVM that is running Ant. Inparticular, if you use JDK 1.4 the generated classes will not beusable for a 1.1 Java VM unless you explicitly set this attributeto the value 1.1 (which is the default value for JDK 1.1 to1.3)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no">
+ <DESCRIPTION>Asks the compiler for verbose output</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="depend" REQUIRED="no">
+ <DESCRIPTION>Enables dependency-trackingfor compilers that support this (jikes andclassic)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includeantruntime" REQUIRED="no">
+ <DESCRIPTION>Whether to include the Ant run-time libraries in theclasspath; defaults to yes</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includejavaruntime" REQUIRED="no">
+ <DESCRIPTION>Whether to include the default run-timelibraries from the executing VM in the classpath;defaults to yes</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="fork" REQUIRED="no">
+ <DESCRIPTION>Whether to execute javac using theJDK compiler externally; defaults to no</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="executable" REQUIRED="no">
+ <DESCRIPTION>Complete path to the javacexecutable to use in case of fork=&quot;yes&quot;.Defaults to the compiler of the Java version that is currentlyrunning Ant. Ignored if fork=&quot;no</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="memoryinitialsize" REQUIRED="no">
+ <DESCRIPTION>The initial size of the memory for the underlying VM,if javac is run externally; ignored otherwise. Defaultsto the standard VM memory setting.(Examples: 83886080, 81920k, or80m</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="memorymaximumsize" REQUIRED="no">
+ <DESCRIPTION>The maximum size of the memory for the underlying VM,if javac is run externally; ignored otherwise. Defaultsto the standard VM memory setting.(Examples: 83886080, 81920k, or80m</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no">
+ <DESCRIPTION>Indicates whether the build will continue even if there are compilation errors; defaults to true.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="source" REQUIRED="no">
+ <DESCRIPTION>Value of the -source command-lineswitch; will be ignored by all implementations exceptjavac1.4 (or modern when Ant is notrunning in a 1.3 VM) and jikesIf you use thisattribute together with jikes, you must make surethat your version of jikes supports the -sourceswitchLegal values are 1.3 and 1.4&amp;ndash; by default, no -source argument will be usedat all</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compiler" REQUIRED="no">
+ <DESCRIPTION>The compiler implementation to use.If this attribute is not set, the value of thebuild.compiler property, if set, will be used.Otherwise, the default compiler for the current VM will be used.(See the above list of validcompilers.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="listfiles" REQUIRED="no">
+ <DESCRIPTION>Indicates whether the source files to be compiled willbe listed; defaults to no</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="javadoc">
+ <DESCRIPTION>&lt;p&gt;Generates code documentation using the javadoc tool.&lt;/p&gt;
+&lt;p&gt;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
+&amp;quot;changed&amp;quot; files, unlike the &lt;a href=&quot;javac.html&quot;&gt;javac&lt;/a&gt; task. This means
+all packages will be processed each time this task is run. In general, however,
+this task is used much less frequently.&lt;/p&gt;
+&lt;p&gt;This task works seamlessly between different javadoc versions (1.1,
+1.2 and 1.4), with the obvious restriction that the 1.2 attributes
+will be ignored if run in a 1.1 VM.&lt;/p&gt;
+&lt;p&gt;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.&lt;/p&gt;
+&lt;p&gt;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. &lt;/p&gt;
+&lt;p&gt;&lt;i&gt;&lt;b&gt;DEPRECATION:&lt;/b&gt; 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 &lt;a href=&quot;javadoc.html&quot;&gt;javadoc&lt;/a&gt;
+instead.&lt;/i&gt;&lt;/p&gt;
+&lt;p&gt;In the table below, 1.1 means available if your current Java VM is
+a 1.1 VM, 1.2 for either 1.2 or 1.3 and 1.4 for a 1.4 Java VM. 1.2+
+means any VM of at least version 1.2.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="sourcepath" REQUIRED="at least one of the three or nested
+ &lt;sourcepath&gt;, &lt;fileset&gt; or
+ &lt;packageset&gt;">
+ <DESCRIPTION>Specify where to find source file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="sourcepathref" REQUIRED="">
+ <DESCRIPTION>Specify where to find source files by reference to a PATH defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="sourcefiles" REQUIRED="">
+ <DESCRIPTION>Comma separated list of source file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="destdir" REQUIRED="yes, unless a doclet has been specified.">
+ <DESCRIPTION>Destination directory for output file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="maxmemory" REQUIRED="no">
+ <DESCRIPTION>Max amount of memory to allocate to the javadoc V</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="packagenames" REQUIRED="no">
+ <DESCRIPTION>Comma separated list of package files (with terminatingwildcard</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="packagelist" REQUIRED="no">
+ <DESCRIPTION>The name of a file containing the packages to proces</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>Specify where to find user class file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="bootclasspath" REQUIRED="no">
+ <DESCRIPTION>Override location of class files loaded by the bootstrapclass loade</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpathref" REQUIRED="no">
+ <DESCRIPTION>Specify where to find user class files by reference to a PATH defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="bootclasspathref" REQUIRED="no">
+ <DESCRIPTION>Override location of class files loaded by thebootstrap class loader by reference to aPATH defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="extdirs" REQUIRED="no">
+ <DESCRIPTION>Override location of installed extension</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="overview" REQUIRED="no">
+ <DESCRIPTION>Read overview documentation from HTML fil</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="access" REQUIRED="no (default protected)">
+ <DESCRIPTION>Access mode: one of public, protected,package, or privat</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="public" REQUIRED="no">
+ <DESCRIPTION>Show only public classes and member</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="protected" REQUIRED="no">
+ <DESCRIPTION>Show protected/public classes and members (default</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="package" REQUIRED="no">
+ <DESCRIPTION>Show package/protected/public classes and member</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="private" REQUIRED="no">
+ <DESCRIPTION>Show all classes and member</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="old" REQUIRED="no">
+ <DESCRIPTION>Generate output using JDK 1.1 emulating docle</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no">
+ <DESCRIPTION>Output messages about what Javadoc is doin</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="locale" REQUIRED="no">
+ <DESCRIPTION>Locale to be used, e.g. en_US or en_US_WI</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no">
+ <DESCRIPTION>Source file encoding nam</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="version" REQUIRED="no">
+ <DESCRIPTION>Include @version paragraph</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="use" REQUIRED="no">
+ <DESCRIPTION>Create class and package usage page</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="author" REQUIRED="no">
+ <DESCRIPTION>Include @author paragraph</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="splitindex" REQUIRED="no">
+ <DESCRIPTION>Split index into one file per lette</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="windowtitle" REQUIRED="no">
+ <DESCRIPTION>Browser window title for the documentation (text</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="doctitle" REQUIRED="no">
+ <DESCRIPTION>Include title for the package index(first) page (html-code</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="header" REQUIRED="no">
+ <DESCRIPTION>Include header text for each page (html-code</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="footer" REQUIRED="no">
+ <DESCRIPTION>Include footer text for each page (html-code</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="bottom" REQUIRED="no">
+ <DESCRIPTION>Include bottom text for each page (html-code</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="link" REQUIRED="no">
+ <DESCRIPTION>Create links to javadoc output at the given UR</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="linkoffline" REQUIRED="no">
+ <DESCRIPTION>Link to docs at &lt;url&gt; using package list at&lt;url2&gt; - separate the URLs by using a space character</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="group" REQUIRED="no">
+ <DESCRIPTION>Group specified packages together in overviewpage. The format is as described below</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="nodeprecated" REQUIRED="no">
+ <DESCRIPTION>Do not include @deprecated informatio</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="nodeprecatedlist" REQUIRED="no">
+ <DESCRIPTION>Do not generate deprecated lis</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="notree" REQUIRED="no">
+ <DESCRIPTION>Do not generate class hierarch</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="noindex" REQUIRED="no">
+ <DESCRIPTION>Do not generate inde</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="nohelp" REQUIRED="no">
+ <DESCRIPTION>Do not generate help lin</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="nonavbar" REQUIRED="no">
+ <DESCRIPTION>Do not generate navigation ba</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="serialwarn" REQUIRED="no">
+ <DESCRIPTION>Generate warning about @serial ta</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="helpfile" REQUIRED="no">
+ <DESCRIPTION>Specifies the HTML help file to us</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="stylesheetfile" REQUIRED="no">
+ <DESCRIPTION>Specifies the CSS stylesheet to us</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="charset" REQUIRED="no">
+ <DESCRIPTION>Charset for cross-platform viewing of generateddocumentatio</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="docencoding" REQUIRED="no">
+ <DESCRIPTION>Output file encoding nam</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="doclet" REQUIRED="no">
+ <DESCRIPTION>Specifies the class file that starts the doclet used in generating the documentation</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="docletpath" REQUIRED="no">
+ <DESCRIPTION>Specifies the path to the doclet class file that is specified with the -doclet option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="docletpathref" REQUIRED="no">
+ <DESCRIPTION>Specifies the path to the doclet class file thatis specified with the -doclet option by reference to a PATH defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="additionalparam" REQUIRED="no">
+ <DESCRIPTION>Lets you add additional parameters to the javadoccommand line. Useful for doclets. Parameters containingspaces need to be quoted using &amp;quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no">
+ <DESCRIPTION>Stop the buildprocess if the command exits with areturncode other than 0</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludepackagenames" REQUIRED="no">
+ <DESCRIPTION>comma separated list of packages you don't wantdocs for</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used(yes | no); default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="useexternalfile" REQUIRED="no">
+ <DESCRIPTION>indicates whether the sourcefile name specifiedin srcfiles or as nested source elements should be written to atemporary file to make the command line shorter. Also applies tothe package names specified via the packagenames attribute ornested package elements.(yes | no). Default is no</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="source" REQUIRED="no">
+ <DESCRIPTION>Necessary to enable javadoc to handle assertionspresent in J2SE v 1.4 source code. Set this to &quot;1.4&quot; todocuments code that compiles using &quot;javac -source1.4&quot;. Will be ignored if you use a customdoclet</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="loadfile">
+ <DESCRIPTION>&lt;p&gt;
+Load a text file into a single property. Unless an encoding is specified,
+the encoding of the current locale is used.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="srcfile" REQUIRED="yes">
+ <DESCRIPTION>source fil</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="property" REQUIRED="yes">
+ <DESCRIPTION>property to save t</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no">
+ <DESCRIPTION>encoding to use when loading the fil</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no, default &quot;true&quot;">
+ <DESCRIPTION>Whether to halt the build on failur</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="loadproperties">
+ <DESCRIPTION>&lt;p&gt;
+Load a file's contents as Ant properties. This is equivalent
+to &amp;lt;property file=&amp;quot;...&amp;quot;/&amp;gt; except that it
+supports nested &amp;lt;filterchain&amp;gt; elements and it cannot be
+specified outside a target.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="srcfile" REQUIRED="yes">
+ <DESCRIPTION>source fil</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no">
+ <DESCRIPTION>encoding to use when loading the fil</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="mail">
+ <DESCRIPTION>&lt;p&gt;A task to send SMTP email. This task can send mail using either plain
+text, UU encoding, or MIME format mail, depending on what is available.
+Attachments may be sent using nested
+&lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;fileset&lt;/a&gt; elements.&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This task may depend on external libraries
+that are not included
+in the Ant distribution. See &lt;a href=&quot;../install.html#librarydependencies&quot;&gt;
+Library Dependencies&lt;/a&gt; for more information.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="from" REQUIRED="either a from attribute, or a &lt;from&gt;
+ element.">
+ <DESCRIPTION>Email address of sender</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="tolist" REQUIRED="at least one of these, or the
+ equivalent elements.">
+ <DESCRIPTION>Comma-separated list of recipients</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="cclist" REQUIRED="">
+ <DESCRIPTION>Comma-separated list of recipients to carbon cop</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="bcclist" REQUIRED="">
+ <DESCRIPTION>Comma-separated list of recipients to carbon cop</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="message" REQUIRED="one of these or a
+ &lt;message&gt; element.">
+ <DESCRIPTION>Message to send in the body of the email</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="messagefile" REQUIRED="">
+ <DESCRIPTION>File to send as the body of the email. Propertyvalues in the file will be expanded</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="messagemimetype" REQUIRED="no">
+ <DESCRIPTION>The content type of the message. The default istext/plain</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="files" REQUIRED="no">
+ <DESCRIPTION>Files to send as attachments to the email. Separate multiplefile names using a comma. You can also use &lt;fileset&gt;elements to specify files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no.">
+ <DESCRIPTION>flag to indicate whether to halt the build onany error. The default value is true</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includefilenames" REQUIRED="no">
+ <DESCRIPTION>Include filename(s) before file contents.Valid only when the plain encoding is used. The defaultvalue is false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="mailhost" REQUIRED="no">
+ <DESCRIPTION>Host name of the SMTP server. The default value islocalhost</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="mailport" REQUIRED="no">
+ <DESCRIPTION>TCP port of the SMTP server. The default value is 25</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no">
+ <DESCRIPTION>Specifies the encoding to use for the content of the email.Values are mime, uu, plain, orauto. The default value is auto</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="subject" REQUIRED="no">
+ <DESCRIPTION>Email subject line</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="manifest">
+ <DESCRIPTION>&lt;p&gt;Creates a manifest file.&lt;/p&gt;
+&lt;p&gt;This task can be used to write a Manifest file, optionally
+replacing or updating an existing file.&lt;/p&gt;
+&lt;p&gt;Manifests are processed according to the
+&lt;a href=&quot;http://java.sun.com/j2se/1.3/docs/guide/jar/jar.html&quot;&gt;Jar
+file specification.&lt;/a&gt;. Specifically, a manifest element consists of
+a set of attributes and sections. These sections in turn may contain
+attributes. Note in particular that this may result in manifest lines
+greater than 72 bytes being wrapped and continued on the next
+line.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="yes">
+ <DESCRIPTION>the manifest-file to create/update</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="mode" REQUIRED="no">
+ <DESCRIPTION>One of &quot;update&quot; or &quot;replace&quot;, default is &quot;replace&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="mkdir">
+ <DESCRIPTION>&lt;p&gt;Creates a directory. Also non-existent parent directories are created, when
+necessary.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="dir" REQUIRED="yes">
+ <DESCRIPTION>the directory to create</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="move">
+ <DESCRIPTION>&lt;p&gt;Moves a file to a new file or directory, or sets of files to
+a new directory. By default, the
+destination file is overwritten if it already exists. When &lt;var&gt;overwrite&lt;/var&gt; 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.&lt;/p&gt;
+&lt;p&gt;&lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt;s are used to select sets of files
+to move to the &lt;var&gt;todir&lt;/var&gt; directory.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="one of file or
+ at least one nested fileset element">
+ <DESCRIPTION>the file to mov</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="tofile" REQUIRED="with the file attribute,
+ either tofile or todir can be used. with nested filesets,
+ if the fileset size is greater than 1 or if the only entry in the fileset is a
+ directory or if the file attribute is already specified, only
+ todir is allowed">
+ <DESCRIPTION>the file to move t</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="todir" REQUIRED="">
+ <DESCRIPTION>the directory to move t</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="overwrite" REQUIRED="no">
+ <DESCRIPTION>overwrite existing files even if the destinationfiles are newer (default is &quot;true&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filtering" REQUIRED="no">
+ <DESCRIPTION>indicates whether token filtering should take place duringthe move. See the filter task for a description ofhow filters work</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="flatten" REQUIRED="no">
+ <DESCRIPTION>ignore directory structure of source directory,copy all files into a single directory, specified by the todirattribute (default is &quot;false&quot;).Note that you can achieve thesame effect by using a flatten mappe</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includeemptydirs" REQUIRED="no">
+ <DESCRIPTION>Copy empty directories included with the nested FileSet(s).Defaults to &quot;yes&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="parallel">
+ <DESCRIPTION>&lt;p&gt;Parallel is a container task - it can contain other Ant tasks. Each nested
+task within the parallel task will be executed in its own thread. &lt;/p&gt;
+&lt;p&gt;Parallel tasks have a number of uses in an Ant buildfile including:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;Taking advantage of available processing resources to reduce build time&lt;/li&gt;
+&lt;li&gt;Testing servers, where the server can be run in one thread and the test
+harness is run in another thread.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;Care must be taken when using multithreading to ensure the tasks within the
+threads do not interact. For example, two javac compile tasks which write
+classes into the same destination directory may interact where one tries to
+read a class for dependency information while the other task is writing the
+class file. Be sure to avoid these types of interactions within a
+&amp;lt;parallel&amp;gt; task&lt;/p&gt;
+&lt;p&gt;The parallel task has no attributes and does not support any nested
+elements apart from Ant tasks. Any valid Ant task may be embedded within a
+parallel task, including other parallel tasks.&lt;/p&gt;
+&lt;p&gt;Note that while the tasks within the parallel task are being run, the main
+thread will be blocked waiting for all the child threads to complete.&lt;/p&gt;
+&lt;p&gt;If any of the tasks within the &amp;lt;parallel&amp;gt; task fails, the remaining
+tasks in other threads will continue to run until all threads have completed.
+In this situation, the parallel task will also fail.&lt;/p&gt;
+&lt;p&gt;The parallel task may be combined with the &lt;a href=&quot;sequential.html&quot;&gt;
+sequential&lt;/a&gt; task to define sequences of tasks to be executed on each thread
+within the parallel block&lt;/p&gt;
+&lt;h3&gt;Examples&lt;/h3&gt;
+&lt;pre&gt;
+&amp;lt;parallel&amp;gt;
+&amp;lt;wlrun ... &amp;gt;
+&amp;lt;sequential&amp;gt;
+&amp;lt;sleep seconds=&amp;quot;30&amp;quot;/&amp;gt;
+&amp;lt;junit ... &amp;gt;
+&amp;lt;wlstop/&amp;gt;
+&amp;lt;/sequential&amp;gt;
+&amp;lt;/parallel&amp;gt;
+&lt;/pre&gt;
+&lt;p&gt;This example represents a typical pattern for testing a server application.
+In one thread the server is started (the wlrun task). The other thread consists
+of a three tasks which are performed in sequence. The sleep task is used to
+give the server time to come up. Another task which is capable of validating
+that the server is available could be used in place of the sleep task. The
+test harness is then run. Once the tests are complete, the server is stopped
+(using wlstop in this example), allowing both threads to complete. The
+parallel task will also complete at this time and the build will then
+continue.&lt;/p&gt;
+&lt;pre&gt;
+&amp;lt;parallel&amp;gt;
+&amp;lt;javac ...&amp;gt; &amp;lt;!-- compiler servlet code --&amp;gt;
+&amp;lt;wljspc ...&amp;gt; &amp;lt;!-- precompile JSPs --&amp;gt;
+&amp;lt;/parallel&amp;gt;
+&lt;/pre&gt;
+&lt;p&gt;This example shows two independent tasks being run to achieve better
+resource utilization during the build. In this instance, some servlets are being
+compiled in one thead and a set of JSPs is being precompiled in another. As
+noted above, you need to be careful that the two tasks are independent, both in
+terms of their dependencies and in terms of their potential interactions in
+Ant's external environment.&lt;/p&gt;
+&lt;hr&gt;
+&lt;p align=&quot;center&quot;&gt;Copyright &amp;copy; 2001-2002 Apache Software Foundation. All rights
+Reserved.&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+</DESCRIPTION> </TASK>
+ <TASK NAME="patch">
+ <DESCRIPTION>&lt;p&gt;Applies a diff file to originals. ; requires &quot;patch&quot; to be
+on the execution path. &lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="patchfile" REQUIRED="yes">
+ <DESCRIPTION>the file that includes the diff outpu</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="originalfile" REQUIRED="no, tries to guess it from the diff
+ file">
+ <DESCRIPTION>the file to patc</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="backups" REQUIRED="no">
+ <DESCRIPTION>Keep backups of the unpatched file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="quiet" REQUIRED="no">
+ <DESCRIPTION>Work silently unless an error occur</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="reverse" REQUIRED="no">
+ <DESCRIPTION>Assume patch was created with old and new files swapped</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="ignorewhitespace" REQUIRED="no">
+ <DESCRIPTION>Ignore whitespace differences</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="strip" REQUIRED="no">
+ <DESCRIPTION>Strip the smallest prefix containing num leading slashes from filenames</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dir" REQUIRED="no, default is the project's basedir.">
+ <DESCRIPTION>The directory in which to run the patch command</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="pathconvert">
+ <DESCRIPTION>&lt;p&gt;Converts a nested &lt;code&gt;&amp;lt;path&amp;gt;&lt;/code&gt; or reference to a Path,
+FileSet, DirSet, or FileList into a path
+form for a particular platform, and stores the result in a given property.
+It can also be used when you need
+to convert a Path, FileSet, or DirSet into a list, separated by a given
+character, such as a comma or space, or, conversely, to convert a list
+of files in a FileList into a path.
+&lt;/p&gt;
+&lt;p&gt;Nested &lt;code&gt;&amp;lt;map&amp;gt;&lt;/code&gt; elements can be specified to map Windows
+drive letters to Unix paths, and vice-versa.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="targetos" REQUIRED="yes, unless pathsep and/or
+ dirsep are specified.
+ ">
+ <DESCRIPTION>The target architecture. Must be one of 'unix', 'windows', 'netware' or 'os/2'.This is a shorthand mechanism for specifying bothpathsep and dirsepaccording to the specified target architecture.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dirsep" REQUIRED="no, defaults to current jvm file.separator">
+ <DESCRIPTION>The character(s) to use as the directory separator in thegenerated paths.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="pathsep" REQUIRED="no, defaults to current jvm file.pathseparator">
+ <DESCRIPTION>The character(s) to use as the path-element separator in thegenerated paths.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="property" REQUIRED="yes">
+ <DESCRIPTION>The name of the property in which to place the converted path</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="refid" REQUIRED="no; if omitted, a nested
+ &lt;path&gt; element must be supplied.">
+ <DESCRIPTION>What to convert, given as areference to a&lt;path&gt;, &lt;fileset&gt;,&lt;dirset&gt;, or &lt;fileset&gt;defined elsewher</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="setonempty" REQUIRED="no; default is &quot;true&quot;.
+ ">
+ <DESCRIPTION>Should the property be set, even if the resultis the empty string?</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="property">
+ <DESCRIPTION>&lt;p&gt;Sets a property (by name and value), or set of properties (from file or
+resource) in the project. Properties are case sensitive.&lt;/p&gt;
+Properties are immutable: whoever sets a property first freezes it for the
+rest of the build; they are most definately not variable.
+&lt;p&gt;There are five ways to set properties:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;By supplying both the &lt;i&gt;name&lt;/i&gt; and &lt;i&gt;value&lt;/i&gt; attribute.&lt;/li&gt;
+&lt;li&gt;By supplying both the &lt;i&gt;name&lt;/i&gt; and &lt;i&gt;refid&lt;/i&gt; attribute.&lt;/li&gt;
+&lt;li&gt;By setting the &lt;i&gt;file&lt;/i&gt; 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.&lt;/li&gt;
+&lt;li&gt;By setting the &lt;i&gt;resource&lt;/i&gt; 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.&lt;/li&gt;
+&lt;li&gt;By setting the &lt;i&gt;environment&lt;/i&gt; 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.&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;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.&lt;/p&gt;
+&lt;p&gt;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.&lt;/p&gt;
+&lt;p&gt;A list of predefined properties can be found &lt;a
+href=&quot;../using.html#built-in-props&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="name" REQUIRED="no">
+ <DESCRIPTION>the name of the property to set</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="value" REQUIRED="one of these, when using the
+ name attribute">
+ <DESCRIPTION>the value of the property</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="location" REQUIRED="">
+ <DESCRIPTION>Sets the property to the absolute filename of thegiven file. If the value of this attribute is an absolute path, itis left unchanged (with / and \ characters converted to thecurrent platforms conventions). Otherwise it is taken as a pathrelative to the project's basedir and expanded</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="refid" REQUIRED="">
+ <DESCRIPTION>Reference to an objectdefined elsewhere. Only yields reasonable results for referencesto PATH like structures or properties</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="resource" REQUIRED="one of these, when
+ not using the name attribute">
+ <DESCRIPTION>the resource name of the property file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="file" REQUIRED="">
+ <DESCRIPTION>the filename of the property file </DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="environment" REQUIRED="">
+ <DESCRIPTION>the prefix to use when retrieving environment variables. Thusif 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;. 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 platformsthis functionality is supported on ;)Note also that properties are case sensitive, even if theenvironment variables on your operating system are not, e.g. itwill be ${env.Path} not ${env.PATH} on Windows 2000</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>the classpath to use when looking up a resource</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpathref" REQUIRED="no">
+ <DESCRIPTION>the classpath to use when looking up a resource,given as reference to a &lt;path&gt; definedelsewhere.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="prefix" REQUIRED="no">
+ <DESCRIPTION>Prefix to apply to properties loaded using fileor resource. A &quot;.&quot; is appended to the prefix if not specified</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="recorder">
+ <DESCRIPTION>&lt;p&gt;A recorder is a listener to the current build process that records the
+output to a file.&lt;/p&gt;
+&lt;p&gt;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).&lt;/p&gt;
+&lt;p&gt;Some technical issues: the file's print stream is flushed for &amp;quot;finished&amp;quot;
+events (buildFinished, targetFinished and taskFinished), and is closed on
+a buildFinished event.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="name" REQUIRED="yes">
+ <DESCRIPTION>The name of the file this logger is associated with</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="action" REQUIRED="no">
+ <DESCRIPTION>This tells the logger what to do: should it startrecording or stop? The first time that the recorder task is called forthis logfile, and if this attribute is not provided, then the defaultfor this attribute is &quot;start&quot;. If this attribute is not provided onsubsequent calls, then the state remains as previous.[Values = {start|stop}, Default = no state change</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="append" REQUIRED="no">
+ <DESCRIPTION>Should the recorder append to a file, or create a newone? This is only applicable the first time this task is called forthis file. [Values = {yes|no}, Default=yes</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="emacsmode" REQUIRED="no, default is false">
+ <DESCRIPTION>Removes [task] banners like Ant's-emacs command line switch if set totrue</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="loglevel" REQUIRED="no">
+ <DESCRIPTION>At what logging level should this recorder instancerecord to? This is not a once only parameter (like appendis) -- you can increase or decrease the logging level as the build processcontinues. [Values= {error|warn|info|verbose|debug}, Default = no change]</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="rename">
+ <DESCRIPTION>&lt;p&gt;Renames a given file.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="src" REQUIRED="yes">
+ <DESCRIPTION>file to rename</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dest" REQUIRED="yes">
+ <DESCRIPTION>new name of the file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="replace" REQUIRED="no">
+ <DESCRIPTION>Enable replacing of existing file (default: on)</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="replace">
+ <DESCRIPTION>&lt;p&gt;Replace is a directory based task for replacing the occurrence of a given string with another string
+in selected file.&lt;/p&gt;
+&lt;p&gt;If you want to replace a text that crosses line boundaries, you
+must use a nested &lt;code&gt;&amp;lt;replacetoken&amp;gt;&lt;/code&gt; element.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="exactly one of the two.">
+ <DESCRIPTION>file for which the token should be replaced</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dir" REQUIRED="">
+ <DESCRIPTION>The base directory to use when replacing a token in multiple files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no - defaults to default jvm encoding">
+ <DESCRIPTION>The encoding of the files upon which replace operates</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="token" REQUIRED="yes, unless a nested
+ replacetoken element or the replacefilterfile
+ attribute is used.">
+ <DESCRIPTION>the token which must be replaced</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="value" REQUIRED="no">
+ <DESCRIPTION>the new value for the token. When omitted, an empty string(&quot;&quot;) is used</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="summary" REQUIRED="no, by default no summary is produced">
+ <DESCRIPTION>Indicates whether a summary of the replace operation should be produced, detailing how many token occurrences and files were processed</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="propertyfile" REQUIRED="yes only if property attribute of &lt;replacefilter&gt; is used.">
+ <DESCRIPTION>valid property file from which properties specified using nested &lt;replacefilter&gt; elements are drawn</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="replacefilterfile" REQUIRED="no.">
+ <DESCRIPTION>valid property file. Each property will betreated as a replacefilter where token is the name ofthe property and value is the properties value.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beexcluded. No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="rmic">
+ <DESCRIPTION>&lt;p&gt;Runs the rmic compiler for a certain class.&lt;/p&gt;
+&lt;p&gt;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 &lt;code&gt;Outer$$Inner&lt;/code&gt; instead of
+&lt;code&gt;Outer.Inner&lt;/code&gt;.&lt;/p&gt;
+&lt;p&gt;It is possible to refine the set of files that are being rmiced. This can be
+done with the &lt;i&gt;includes&lt;/i&gt;, &lt;i&gt;includesfile&lt;/i&gt;, &lt;i&gt;excludes&lt;/i&gt;, &lt;i&gt;excludesfile&lt;/i&gt; and &lt;i&gt;defaultexcludes&lt;/i&gt;
+attributes. With the &lt;i&gt;includes&lt;/i&gt; or &lt;i&gt;includesfile&lt;/i&gt; attribute you specify the files you want to
+have included by using patterns. The &lt;i&gt;exclude&lt;/i&gt; or &lt;i&gt;excludesfile&lt;/i&gt; attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the &lt;i&gt;defaultexcludes&lt;/i&gt; attribute, you can specify whether you
+want to use default exclusions or not. See the section on &lt;a
+href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based tasks&lt;/a&gt;, on how the
+inclusion/exclusion of files works, and how to write patterns.&lt;/p&gt;
+&lt;p&gt;This task forms an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt; and
+supports all attributes of &lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt;
+(&lt;code&gt;dir&lt;/code&gt; becomes &lt;code&gt;base&lt;/code&gt;) as well as the nested
+&lt;code&gt;&amp;lt;include&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;exclude&amp;gt;&lt;/code&gt; and
+&lt;code&gt;&amp;lt;patternset&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;
+&lt;p&gt;It is possible to use different compilers. This can be selected
+with the &amp;quot;build.rmic&amp;quot; property or the &lt;code&gt;compiler&lt;/code&gt;
+attribute. &lt;a name=&quot;compilervalues&quot;&gt;There are three choices&lt;/a&gt;:&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;sun (the standard compiler of the JDK)&lt;/li&gt;
+&lt;li&gt;kaffe (the standard compiler of &lt;a href=&quot;http://www.kaffe.org&quot; target=&quot;_top&quot;&gt;Kaffe&lt;/a&gt;)&lt;/li&gt;
+&lt;li&gt;weblogic&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;The &lt;a href=&quot;http://dione.zcu.cz/~toman40/miniRMI/&quot;&gt;miniRMI&lt;/a&gt;
+project contains a compiler implementation for this task as well,
+please consult miniRMI's documentation to learn how to use it.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="base" REQUIRED="yes">
+ <DESCRIPTION>the location to store the compiled files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classname" REQUIRED="no">
+ <DESCRIPTION>the class for which to run rmic</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filtering" REQUIRED="no">
+ <DESCRIPTION>indicates whether token filtering should take plac</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="sourcebase" REQUIRED="no">
+ <DESCRIPTION>Pass the &quot;-keepgenerated&quot; flag to rmic andmove the generated source file to the base directory</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="stubversion" REQUIRED="no">
+ <DESCRIPTION>Specify the JDK version for the generated stub code.Specify &quot;1.1&quot; to pass the &quot;-v1.1&quot; option to rmic</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>The classpath to use during compilatio</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpathref" REQUIRED="no">
+ <DESCRIPTION>The classpath to use during compilation, given as reference to a PATH defined elsewher</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beexcluded. No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verify" REQUIRED="no">
+ <DESCRIPTION>check that classes implement Remote before handing them to rmic (default is false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="iiop" REQUIRED="no">
+ <DESCRIPTION>indicates that portable (RMI/IIOP) stubs should be generate</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="iiopopts" REQUIRED="no">
+ <DESCRIPTION>additional arguments for IIOP class generatio</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="idl" REQUIRED="no">
+ <DESCRIPTION>indicates that IDL output files should be generate</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="idlopts" REQUIRED="no">
+ <DESCRIPTION>additional arguments for IDL file generatio</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="debug" REQUIRED="no">
+ <DESCRIPTION>generate debug info (passes -g to rmic). Defaults to false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includeantruntime" REQUIRED="no">
+ <DESCRIPTION>whether to include the Ant run-time libraries;defaults to yes</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includejavaruntime" REQUIRED="no">
+ <DESCRIPTION>whether to include the default run-timelibraries from the executing VM; defaults to no</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="extdirs" REQUIRED="no">
+ <DESCRIPTION>location of installed extensions</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compiler" REQUIRED="no">
+ <DESCRIPTION>The compiler implementation to use.If this attribute is not set, the value of thebuild.rmic property, if set, will be used.Otherwise, the default compiler for the current VM will be used.(See the above list of validcompilers.</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="sequential">
+ <DESCRIPTION>&lt;p&gt;Sequential is a container task - it can contain other Ant tasks. The nested
+tasks are simply executed in sequence. Sequential's primary use is to support
+the sequential execution of a subset of tasks within the
+&lt;a href=&quot;parallel.html&quot;&gt;parallel&lt;/a&gt; task&lt;/p&gt;
+&lt;p&gt;The sequential task has no attributes and does not support any nested
+elements apart from Ant tasks. Any valid Ant task may be embedded within the
+sequential task.&lt;/p&gt;
+&lt;h3&gt;Example&lt;/h3&gt;
+&lt;pre&gt;
+&amp;lt;parallel&amp;gt;
+&amp;lt;wlrun ... &amp;gt;
+&amp;lt;sequential&amp;gt;
+&amp;lt;sleep seconds=&amp;quot;30&amp;quot;/&amp;gt;
+&amp;lt;junit ... &amp;gt;
+&amp;lt;wlstop/&amp;gt;
+&amp;lt;/sequential&amp;gt;
+&amp;lt;/parallel&amp;gt;
+&lt;/pre&gt;
+&lt;p&gt;This example shows how the sequential task is used to execute three tasks in
+sequence, while another task is being executed in a separate thread. &lt;/p&gt;
+&lt;hr&gt;
+&lt;p align=&quot;center&quot;&gt;Copyright &amp;copy; 2001-2002 Apache Software Foundation. All rights
+Reserved.&lt;/p&gt;
+&lt;/body&gt;
+&lt;/html&gt;
+</DESCRIPTION> </TASK>
+ <TASK NAME="signjar">
+ <DESCRIPTION>&lt;p&gt;Signs jar or zip files with the javasign command line tool. The
+tool detailed dependency checking: files are only signed if they
+are not signed. The &lt;tt&gt;signjar&lt;/tt&gt; attribute can point to the file to
+generate; if this file exists then
+its modification date is used as a cue as to whether to resign any JAR file.
+&lt;br&gt;
+&lt;strong&gt;Note:&lt;/strong&gt; Requires Java 1.2 or later. &lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="jar" REQUIRED="yes.">
+ <DESCRIPTION>the jar file to sig</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="alias" REQUIRED="yes.">
+ <DESCRIPTION>the alias to sign unde</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="storepass" REQUIRED="yes.">
+ <DESCRIPTION>password for keystore integrity</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="keystore" REQUIRED="no">
+ <DESCRIPTION>keystore locatio</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="storetype" REQUIRED="no">
+ <DESCRIPTION>keystore typ</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="keypass" REQUIRED="no">
+ <DESCRIPTION>password for private key (if different</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="sigfile" REQUIRED="no">
+ <DESCRIPTION>name of .SF/.DSA fil</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="signedjar" REQUIRED="no">
+ <DESCRIPTION>name of signed JAR fil</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no; default false">
+ <DESCRIPTION>(true | false) verbose output when signin</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="internalsf" REQUIRED="no; default false">
+ <DESCRIPTION>(true | false) include the .SF file inside the signaturebloc</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="sectionsonly" REQUIRED="no; default false">
+ <DESCRIPTION>(true | false) don't compute hash of entire manifes</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="lazy" REQUIRED="no; default false">
+ <DESCRIPTION>flag to control whether the presence of a signaturefile means a JAR is signe</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="sleep">
+ <DESCRIPTION>&lt;p&gt; A task for sleeping a short period of time, useful when a build or deployment
+process requires an interval between tasks.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="hours" REQUIRED="no">
+ <DESCRIPTION>hours to to add to the sleep tim</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="minutes" REQUIRED="no">
+ <DESCRIPTION>minutes to add to the sleep tim</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="seconds" REQUIRED="no">
+ <DESCRIPTION>seconds to add to the sleep tim</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="milliseconds" REQUIRED="no">
+ <DESCRIPTION>milliseconds to add to the sleep tim</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no">
+ <DESCRIPTION>flag controlling whether to break the build on an error. </DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="sql">
+ <DESCRIPTION>&lt;p&gt;Executes a series of SQL statements via JDBC to a database. Statements can
+either be read in from a text file using the &lt;i&gt;src&lt;/i&gt; attribute or from
+between the enclosing SQL tags.&lt;/p&gt;
+&lt;p&gt;Multiple statements can be provided, separated by semicolons (or the
+defined &lt;i&gt;delimiter&lt;/i&gt;). Individual lines within the statements can be
+commented using either --, // or REM at the start of the line.&lt;/p&gt;
+&lt;p&gt;The &lt;i&gt;autocommit&lt;/i&gt; attribute specifies whether auto-commit should be
+turned on or off whilst executing the statements. If auto-commit is turned
+on each statement will be executed and committed. If it is turned off the
+statements will all be executed as one transaction.&lt;/p&gt;
+&lt;p&gt;The &lt;i&gt;onerror&lt;/i&gt; attribute specifies how to proceed when an error occurs
+during the execution of one of the statements.
+The possible values are: &lt;b&gt;continue&lt;/b&gt; execution, only show the error;
+&lt;b&gt;stop&lt;/b&gt; execution and commit transaction;
+and &lt;b&gt;abort&lt;/b&gt; execution and transaction and fail task.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="driver" REQUIRED="yes">
+ <DESCRIPTION>Class name of the jdbc drive</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="url" REQUIRED="yes">
+ <DESCRIPTION>Database connection ur</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="userid" REQUIRED="yes">
+ <DESCRIPTION>Database user nam</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="password" REQUIRED="yes">
+ <DESCRIPTION>Database passwor</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="src" REQUIRED="yes, unless statements enclosed within tags">
+ <DESCRIPTION>File containing SQL statement</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no - defaults to default jvm encoding">
+ <DESCRIPTION>The encoding of the files containing SQL statement</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="delimiter" REQUIRED="no, default &quot;;&quot;">
+ <DESCRIPTION>String that separates SQL statement</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="autocommit" REQUIRED="no, default &quot;false&quot;">
+ <DESCRIPTION>Auto commit flag for database connection (default false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="print" REQUIRED="no, default &quot;false&quot;">
+ <DESCRIPTION>Print result sets from the statements (default false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="showheaders" REQUIRED="no, default &quot;true&quot;">
+ <DESCRIPTION>Print headers for result sets from the statements (default true</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="output" REQUIRED="no (print to system.out by default)">
+ <DESCRIPTION>Output file for result sets (defaults to System.out</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="append" REQUIRED="no">
+ <DESCRIPTION>whether output should be appended to or overwritean existing file. Defaults to false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no (use system classpath)">
+ <DESCRIPTION>Classpath used to load drive</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpathref" REQUIRED="no (use system classpath)">
+ <DESCRIPTION>The classpath to use, given as a reference to a path defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="onerror" REQUIRED="no, default &quot;abort&quot;">
+ <DESCRIPTION>Action to perform when statement fails: continue, stop, abor</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="rdbms" REQUIRED="no (no restriction)">
+ <DESCRIPTION>Execute task only if this rdbm</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="version" REQUIRED="no (no restriction)">
+ <DESCRIPTION>Execute task only if rdbms version matc</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="caching" REQUIRED="no (default=true)">
+ <DESCRIPTION>Should the task cache loaders and the driver</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="tar">
+ <DESCRIPTION>&lt;p&gt;Creates a tar archive.&lt;/p&gt;
+&lt;p&gt;The &lt;i&gt;basedir&lt;/i&gt; attribute is the reference directory from where to tar.&lt;/p&gt;
+&lt;p&gt;This task is a &lt;a href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based task&lt;/a&gt;
+and, as such, forms an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;Fileset&lt;/a&gt;. This
+defines which files, relative to the &lt;i&gt;basedir&lt;/i&gt;, will be included in the
+archive. The tar task supports all the attributes of Fileset to refine the
+set of files to be included in the implicit fileset.&lt;/p&gt;
+&lt;p&gt;In addition to the implicit fileset, the tar task supports nested filesets. These
+filesets are extended to allow control over the access mode, username and groupname
+to be applied to the tar entries. This is useful, for example, when preparing archives for
+Unix systems where some files need to have execute permission.&lt;/p&gt;
+&lt;p&gt;Early versions of tar did not support path lengths greater than 100
+characters. Modern versions of tar do so, but in incompatible ways.
+The behaviour of the tar task when it encounters such paths is
+controlled by the &lt;i&gt;longfile&lt;/i&gt; attribute.
+If the longfile attribute is set to &lt;code&gt;fail&lt;/code&gt;, any long paths will
+cause the tar task to fail. If the longfile attribute is set to
+&lt;code&gt;truncate&lt;/code&gt;, any long paths will be truncated to the 100 character
+maximum length prior to adding to the archive. If the value of the longfile
+attribute is set to &lt;code&gt;omit&lt;/code&gt; then files containing long paths will be
+omitted from the archive. Either option ensures that the archive can be
+untarred by any compliant version of tar. If the loss of path or file
+information is not acceptable, and it rarely is, longfile may be set to the
+value &lt;code&gt;gnu&lt;/code&gt;. The tar task will then produce a GNU tar file which
+can have arbitrary length paths. Note however, that the resulting archive will
+only be able to be untarred with GNU tar. The default for the longfile
+attribute is &lt;code&gt;warn&lt;/code&gt; which behaves just like the gnu option except
+that it produces a warning for each file path encountered that does not match
+the limit.&lt;/p&gt;
+&lt;p&gt;This task can perform compression by setting the compression attribute to &quot;gzip&quot;
+or &quot;bzip2&quot;.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="destfile" REQUIRED="yes">
+ <DESCRIPTION>the tar-file to create</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="basedir" REQUIRED="no">
+ <DESCRIPTION>the directory from which to tar the files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="longfile" REQUIRED="no">
+ <DESCRIPTION>Determines how long files (&gt;100 chars) are to behandled. Allowable values are &quot;truncate&quot;, &quot;fail&quot;,&quot;warn&quot;, &quot;omit&quot; and &quot;gnu&quot;. Default is&quot;warn&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beexcluded. No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compression" REQUIRED="no">
+ <DESCRIPTION>compression method. Allowable values are &quot;none&quot;, &quot;gzip&quot; and &quot;bzip2&quot;. Default is&quot;none&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="taskdef">
+ <DESCRIPTION>&lt;p&gt;Adds a task definition to the current project, such that this new task can be
+used in the current project. Two attributes are needed, the name that identifies
+this task uniquely, and the full name of the class (including the packages) that
+implements this task.&lt;/p&gt;
+&lt;p&gt;You can also define a group of tasks at once using the file or
+resource attributes. These attributes point to files in the format of
+Java property files. Each line defines a single task in the
+format:&lt;/p&gt;
+&lt;pre&gt;
+taskname=fully.qualified.java.classname
+&lt;/pre&gt;
+&lt;p&gt;Taskdef should be used to add your own tasks to the system. See also &amp;quot;&lt;a
+href=&quot;../develop.html#writingowntask&quot;&gt;Writing your own task&lt;/a&gt;&amp;quot;.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="name" REQUIRED="yes, unless file or resource have
+ been specified.">
+ <DESCRIPTION>the name of the tas</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classname" REQUIRED="yes, unless file or resource have
+ been specified.">
+ <DESCRIPTION>the full class name implementing the tas</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="file" REQUIRED="no">
+ <DESCRIPTION>Name of the property file to loadtaskname/classname pairs from</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="resource" REQUIRED="no">
+ <DESCRIPTION>Name of the property resource to loadtaskname/classname pairs from</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>the classpath touse when looking up classname orresource</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpathref" REQUIRED="no">
+ <DESCRIPTION>Reference to a classpath touse when looking up classname orresource</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="loaderref" REQUIRED="no">
+ <DESCRIPTION>the name of the loader that isused to load the class, constructed from the specified classpath. Use this toallow multiple tasks/types to be loaded with the same loader, so they can calleach other. ( introduced in ant1.5 </DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="touch">
+ <DESCRIPTION>&lt;p&gt;Changes the modification time of a file and possibly creates it at
+the same time. In addition to working with a single file, this Task
+can also work a &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;Fileset&lt;/a&gt; (which
+also includes directories).&lt;/p&gt;
+&lt;p&gt;For JDK 1.1 only the creation of new files with a modification time
+of now works, all other cases will emit a warning.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="unless a nested fileset element
+ has been specified.">
+ <DESCRIPTION>the name of the fil</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="millis" REQUIRED="no">
+ <DESCRIPTION>specifies the new modification time of the filein milliseconds since midnight Jan 1 197</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="datetime" REQUIRED="no">
+ <DESCRIPTION>specifies the new modification time of the filein the format MM/DD/YYYY HH:MM AM_or_PM</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="tstamp">
+ <DESCRIPTION>&lt;p&gt;Sets the &lt;code&gt;DSTAMP&lt;/code&gt;, &lt;code&gt;TSTAMP&lt;/code&gt;, and &lt;code&gt;TODAY&lt;/code&gt;
+properties in the current project. By default,
+the &lt;code&gt;DSTAMP&lt;/code&gt; property is in the
+format &amp;quot;yyyyMMdd&amp;quot;, &lt;code&gt;TSTAMP&lt;/code&gt; is in the
+format &amp;quot;hhmm&amp;quot;, and &lt;code&gt;TODAY&lt;/code&gt; is in the
+format &amp;quot;MMMM dd yyyy&amp;quot;. Use the nested &amp;lt;format&amp;gt; element
+to specify a different format.&lt;/p&gt;
+&lt;p&gt;These properties can be used in the build-file, for instance, to create
+time-stamped filenames, or used to replace placeholder tags inside documents
+to indicate, for example, the release date. The best place for this task is
+probably in an initialization target.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="prefix" REQUIRED="no">
+ <DESCRIPTION>Prefix used for all properties set. The default is no prefix</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="typedef">
+ <DESCRIPTION>&lt;p&gt;Adds a data type definition to the current project, such that this
+new type can be used in the current project. Two attributes are
+needed, the name that identifies this data type uniquely, and the full
+name of the class (including the packages) that implements this
+type.&lt;/p&gt;
+&lt;p&gt;You can also define a group of data types at once using the file or
+resource attributes. These attributes point to files in the format of
+Java property files. Each line defines a single data type in the
+format:&lt;/p&gt;
+&lt;pre&gt;
+typename=fully.qualified.java.classname
+&lt;/pre&gt;
+&lt;p&gt;Typedef should be used to add your own types to the system. Data
+types are things like &lt;a href=&quot;../using.html#path&quot;&gt;paths&lt;/a&gt; or &lt;a
+href=&quot;../CoreTypes/fileset.html&quot;&gt;filesets&lt;/a&gt; that can be defined at
+the project level and referenced via their ID attribute.&lt;/p&gt;
+&lt;p&gt;Custom data types usually need custom tasks to put them to good use.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="name" REQUIRED="yes, unless file or resource have
+ been specified.">
+ <DESCRIPTION>the name of the data typ</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classname" REQUIRED="yes, unless file or resource have
+ been specified.">
+ <DESCRIPTION>the full class name implementing the data typ</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="file" REQUIRED="no">
+ <DESCRIPTION>Name of the property file to loadtypename/classname pairs from</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="resource" REQUIRED="no">
+ <DESCRIPTION>Name of the property resource to loadtypename/classname pairs from</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>the classpath touse when looking up classname</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="loaderref" REQUIRED="no">
+ <DESCRIPTION>the name of the loader that isused to load the class, constructed from the specified classpath. Use this toallow multiple tasks/types to be loaded with the same loader, so they can calleach other. ( introduced in ant1.5 </DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="unzip">
+ <DESCRIPTION>&lt;p&gt;Unzips a zip-, war-, tar- or jarfile.&lt;/p&gt;
+&lt;p&gt;For JDK 1.1 &amp;quot;last modified time&amp;quot; field is set to current time instead of being
+carried from the archive file.&lt;/p&gt;
+&lt;p&gt;&lt;a href=&quot;../CoreTypes/patternset.html&quot;&gt;PatternSet&lt;/a&gt;s are used to select files to extract
+&lt;I&gt;from&lt;/I&gt; the archive. If no patternset is used, all files are extracted.
+&lt;/p&gt;
+&lt;p&gt;&lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt;s may be used used to select archived files
+to perform unarchival upon.
+&lt;/p&gt;
+&lt;p&gt;File permissions will not be restored on extracted files.&lt;/p&gt;
+&lt;p&gt;The untar task recognizes the long pathname entries used by GNU tar.&lt;p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="src" REQUIRED="yes, if filesets are not used.">
+ <DESCRIPTION>archive file to expand</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dest" REQUIRED="yes">
+ <DESCRIPTION>directory where to store the expanded files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="overwrite" REQUIRED="no">
+ <DESCRIPTION>Overwrite files, even if they are newer than thecorresponding entries in the archive (true or false, default istrue)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compression" REQUIRED="no">
+ <DESCRIPTION>compression method for untar. Allowable values are&quot;none&quot;, &quot;gzip&quot; and &quot;bzip2&quot;. Default is&quot;none&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="uptodate">
+ <DESCRIPTION>&lt;p&gt;Sets a property if a target file or set of target files is more up-to-date
+than a source file or set of source files. A single source file is specified
+using the &lt;code&gt;srcfile&lt;/code&gt; attribute. A set of source files is specified
+using the nested &lt;code&gt;&amp;lt;srcfiles&amp;gt;&lt;/code&gt;
+elements. These are &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt;s,
+whereas multiple target files are specified using a nested
+&lt;a href=&quot;../CoreTypes/mapper.html&quot;&gt;&lt;code&gt;&amp;lt;mapper&amp;gt;&lt;/code&gt;&lt;/a&gt; element.&lt;/p&gt;
+&lt;p&gt;By default, the value of the property is set to &lt;code&gt;true&lt;/code&gt; if
+the timestamp of the target file(s) is more recent than the timestamp of
+the corresponding source file(s). You can set the value to something other
+than the default by specifying the &lt;code&gt;value&lt;/code&gt; attribute.&lt;/p&gt;
+&lt;p&gt;If a &lt;code&gt;&amp;lt;srcfiles&amp;gt;&lt;/code&gt; element is used, without also specifying
+a &lt;code&gt;&amp;lt;mapper&amp;gt;&lt;/code&gt; element, the default behavior is to use a
+&lt;a href=&quot;../CoreTypes/mapper.html#merge-mapper&quot;&gt;merge mapper&lt;/a&gt;, with the
+&lt;code&gt;to&lt;/code&gt; attribute set to the value of the
+&lt;code&gt;targetfile&lt;/code&gt; attribute.&lt;/p&gt;
+&lt;p&gt;Normally, this task is used to set properties that are useful to avoid
+target execution depending on the relative age of the specified files.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="property" REQUIRED="yes">
+ <DESCRIPTION>The name of the property to set</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="value" REQUIRED="no; defaults to true.">
+ <DESCRIPTION>The value to set the property to</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="srcfile" REQUIRED="yes, unless a nested
+ &lt;srcfiles&gt; element is present.">
+ <DESCRIPTION>The file to check against the target file(s)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="targetfile" REQUIRED="yes, unless a nested
+ &lt;mapper&gt; element is present.">
+ <DESCRIPTION>The file for which we want to determine the status</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="waitfor">
+ <DESCRIPTION>&lt;p&gt;Blocks execution until a set of specified conditions become true. This is intended
+to be used with the &lt;a href=&quot;parallel.html&quot;&gt;parallel&lt;/a&gt; task to
+synchronize a set of processes.&lt;/p&gt;
+&lt;p&gt;The conditions to wait for are defined in &lt;a href=&quot;waitfor.html#nested&quot;&gt;nested elements&lt;/a&gt;,
+if multiple conditions are specified, then the task will wait until all conditions are true..&lt;/p&gt;
+&lt;p&gt;&lt;/p&gt;
+&lt;p&gt;If both maxwait and maxwaitunit are not specified, the maxwait is 3 minutes (180000 milliseconds).&lt;/p&gt;
+&lt;p&gt;If the &lt;code&gt;timeoutproperty&lt;/code&gt; attribute has been set, a
+property of that name will be created if the condition didn't come
+true within the specified time.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="maxwait" REQUIRED="no">
+ <DESCRIPTION>The maximum amount of time to wait for all the required conditionsto become true before failing the task. Defaults to 180000 maxwaitunits</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="maxwaitunit" REQUIRED="no">
+ <DESCRIPTION>The unit of time that must be used to interpret the value of themaxwait attribute. Defaults to millisecond.Valid Values aremillisecondsecondminutehourdayweek</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="checkevery" REQUIRED="no">
+ <DESCRIPTION>The amount of time to wait between each test of the conditions.Defaults to 500 checkeveryunits</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="checkeveryunit" REQUIRED="no">
+ <DESCRIPTION>The unit of time that must be used to interpret the value of thecheckevery attribute. Defaults to millisecond.Valid Values aremillisecondsecondminutehourdayweek</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="timeoutproperty" REQUIRED="no">
+ <DESCRIPTION>the name of the property to set if maxwait hasbeen exceeded</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="war">
+ <DESCRIPTION>&lt;p&gt;An extension of the &lt;a href=&quot;jar.html&quot;&gt;Jar&lt;/a&gt; task with special
+treatment for files that should end up in the
+&lt;code&gt;WEB-INF/lib&lt;/code&gt;, &lt;code&gt;WEB-INF/classes&lt;/code&gt; or
+&lt;code&gt;WEB-INF&lt;/code&gt; directories of the Web Application Archive.&lt;/p&gt;
+&lt;p&gt;(The War task is a shortcut for specifying the particular layout of a WAR file.
+The same thing can be accomplished by using the &lt;i&gt;prefix&lt;/i&gt; and &lt;i&gt;fullpath&lt;/i&gt;
+attributes of zipfilesets in a Zip or Jar task.)&lt;/p&gt;
+&lt;p&gt;The extended zipfileset element from the zip task (with attributes &lt;i&gt;prefix&lt;/i&gt;, &lt;i&gt;fullpath&lt;/i&gt;, and &lt;i&gt;src&lt;/i&gt;) is available in the War task.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="destfile" REQUIRED="yes">
+ <DESCRIPTION>the WAR file to create</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="warfile" REQUIRED="no">
+ <DESCRIPTION>Deprecated name of the file to create-use destfile instead</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="webxml" REQUIRED="yes, unless update is set to true">
+ <DESCRIPTION>The deployment descriptor to use (WEB-INF/web.xml)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="basedir" REQUIRED="no">
+ <DESCRIPTION>the directory from which to jar the files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compress" REQUIRED="no">
+ <DESCRIPTION>Not only store data but also compress them, defaults to tru</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no">
+ <DESCRIPTION>The character encoding to use for filenamesinside the archive. Defaults to UTF8. It is notrecommended to change this value as the created archive will mostlikely be unreadable for Java otherwise</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filesonly" REQUIRED="no">
+ <DESCRIPTION>Store only file entries, defaults to fals</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beexcluded. No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="manifest" REQUIRED="no">
+ <DESCRIPTION>the manifest file to use</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="update" REQUIRED="no">
+ <DESCRIPTION>indicates whether to update or overwritethe destination file if it already exists</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="duplicate" REQUIRED="no">
+ <DESCRIPTION>behavior when a duplicate file is found. Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;. The default value is &quot;add&quot;. </DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="xmlproperty">
+ <DESCRIPTION>&lt;p&gt;
+Loads property values from a valid xml file.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="yes">
+ <DESCRIPTION>The XML file to parse</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="prefix" REQUIRED="no">
+ <DESCRIPTION>The prefix to prepend to each propert</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="keeproot" REQUIRED="no, default is true.">
+ <DESCRIPTION>If false, it doesn't include the xml root tag as a firstvalue in the property name</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="validate" REQUIRED="no, default is false.">
+ <DESCRIPTION>If true, it enables validation</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="collapseattributes" REQUIRED="no, default is false.">
+ <DESCRIPTION>If true, it treats attributes as nested elements</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="xslt">
+ <DESCRIPTION>&lt;p&gt;Process a set of documents via XSLT.&lt;/p&gt;
+&lt;p&gt;This is useful for building views of XML based documentation,
+or for generating code.&lt;/p&gt;
+&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This task depends on external libraries not included in the Ant distribution.
+See &lt;a href=&quot;../install.html#librarydependencies&quot;&gt;Library Dependencies&lt;/a&gt; for more information.&lt;/p&gt;
+&lt;p&gt;It is possible to refine the set of files that are being processed. This can be
+done with the &lt;i&gt;includes&lt;/i&gt;, &lt;i&gt;includesfile&lt;/i&gt;, &lt;i&gt;excludes&lt;/i&gt;, &lt;i&gt;excludesfile&lt;/i&gt; and &lt;i&gt;defaultexcludes&lt;/i&gt;
+attributes. With the &lt;i&gt;includes&lt;/i&gt; or &lt;i&gt;includesfile&lt;/i&gt; attribute you specify the files you want to
+have included by using patterns. The &lt;i&gt;exclude&lt;/i&gt; or &lt;i&gt;excludesfile&lt;/i&gt; attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the &lt;i&gt;defaultexcludes&lt;/i&gt; attribute, you can specify whether you
+want to use default exclusions or not. See the section on &lt;a
+href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based tasks&lt;/a&gt;, on how the
+inclusion/exclusion of files works, and how to write patterns.&lt;/p&gt;
+&lt;p&gt;This task forms an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt; and supports all
+attributes of &lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt; (&lt;code&gt;dir&lt;/code&gt; becomes &lt;code&gt;basedir&lt;/code&gt;)
+as well as the nested &lt;code&gt;&amp;lt;include&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;exclude&amp;gt;&lt;/code&gt;
+and &lt;code&gt;&amp;lt;patternset&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;
+&lt;p&gt;This task supports the use of a nested &amp;lt;param&amp;gt; element which is used to pass values
+to an &amp;lt;xsl:param&amp;gt; declaration.&lt;/p&gt;
+&lt;p&gt;This task supports the use of a nested &lt;a href=&quot;../CoreTypes/xmlcatalog.html&quot;&gt;xmlcatalog&lt;/a&gt;
+element which is used to perform Entity and URI resolution&lt;/p&gt;
+&lt;p&gt;&lt;i&gt;&amp;lt;style&amp;gt; and &amp;lt;xslt&amp;gt; refer to the same Ant task and can be used interchangeably.&lt;/i&gt;&lt;/p&gt;
+&lt;p&gt;If you want to use Xalan-J 1 or XSL:P, you also need Ant's optional.jar&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="basedir" REQUIRED="no">
+ <DESCRIPTION>where to find the source XML file, default is theproject's basedir</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="destdir" REQUIRED="yes, unless in and out have been
+ specified.">
+ <DESCRIPTION>directory in which to store the results</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="extension" REQUIRED="no">
+ <DESCRIPTION>desired file extension to be used for the targets. If notspecified, the default is &quot;.html&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="style" REQUIRED="yes">
+ <DESCRIPTION>name of the stylesheet to use - given either relativeto the project's basedir or as an absolute pathDEPRECATED - can be specified as a path relativeto the basedir attribute of this task as well.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>the classpath to use when looking up the XSLTprocessor</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpathref" REQUIRED="no">
+ <DESCRIPTION>the classpath to use, given as reference to a path defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="force" REQUIRED="no; default is false">
+ <DESCRIPTION>Recreate target files, even if they are newerthan their corresponding source files or the stylesheet</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="processor" REQUIRED="no">
+ <DESCRIPTION>name of the XSLT processor to use. Permissible values are&quot;trax&quot; for a TraX compliant processor (ie JAXP interfaceimplementation such as Xalan 2 or Saxon),&quot;xslp&quot; for the XSL:P processor, &quot;xalan&quot; forthe Apache XML Xalan (version 1) processor the name of anarbitrary XSLTLiaison class. Defaults to trax, followed by xalanand then xslp (in that order). The first one found in your classpath is the one that is used.DEPRECATED - XSL:P and xalan are deprecated and nomore supported..</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must be included.All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file is taken to bean include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must be excluded.No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file is taken to bean exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="in" REQUIRED="no">
+ <DESCRIPTION>specifies a single XML document to be styled. Should be usedwith the out attribute</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="out" REQUIRED="no">
+ <DESCRIPTION>specifies the output name for the styled result from thein attribute</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="scanincludeddirectories" REQUIRED="no">
+ <DESCRIPTION>If any directories are matched by theincludes/excludes patterns, try to transform all files in thesedirectories. Default is tru</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="zip">
+ <DESCRIPTION>&lt;p&gt;Creates a zipfile.&lt;/p&gt;
+&lt;p&gt;The &lt;i&gt;basedir&lt;/i&gt; attribute is the reference directory from where to zip.&lt;/p&gt;
+&lt;p&gt;Note that file permissions will not be stored in the resulting zipfile.&lt;/p&gt;
+&lt;p&gt;It is possible to refine the set of files that are being zipped. This can be
+done with the &lt;i&gt;includes&lt;/i&gt;, &lt;i&gt;includesfile&lt;/i&gt;, &lt;i&gt;excludes&lt;/i&gt;, &lt;i&gt;excludesfile&lt;/i&gt; and &lt;i&gt;defaultexcludes&lt;/i&gt;
+attributes. With the &lt;i&gt;includes&lt;/i&gt; or &lt;i&gt;includesfile&lt;/i&gt; attribute you specify the files you want to
+have included by using patterns. The &lt;i&gt;exclude&lt;/i&gt; or &lt;i&gt;excludesfile&lt;/i&gt; attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the &lt;i&gt;defaultexcludes&lt;/i&gt; attribute, you can specify whether you
+want to use default exclusions or not. See the section on &lt;a
+href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based tasks&lt;/a&gt;, on how the
+inclusion/exclusion of files works, and how to write patterns. &lt;/p&gt;
+&lt;p&gt;This task forms an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt; and
+supports all attributes of &lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt;
+(&lt;code&gt;dir&lt;/code&gt; becomes &lt;code&gt;basedir&lt;/code&gt;) as well as the nested
+&lt;code&gt;&amp;lt;include&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;exclude&amp;gt;&lt;/code&gt; and
+&lt;code&gt;&amp;lt;patternset&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;
+&lt;p&gt;Or, you may place within it nested file sets, or references to file sets.
+In this case &lt;code&gt;basedir&lt;/code&gt; is optional; the implicit file set is &lt;i&gt;only used&lt;/i&gt;
+if &lt;code&gt;basedir&lt;/code&gt; is set. You may use any mixture of the implicit file set
+(with &lt;code&gt;basedir&lt;/code&gt; set, and optional attributes like &lt;code&gt;includes&lt;/code&gt;
+and optional subelements like &lt;code&gt;&amp;lt;include&amp;gt;&lt;/code&gt;); explicit nested
+&lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt; elements so long as at least one fileset total is specified. The ZIP file will
+only reflect the relative paths of files &lt;i&gt;within&lt;/i&gt; each fileset. The Zip task and its derivatives know a special form of a fileset named zipfileset that has additional attributes (described below). &lt;/p&gt;
+&lt;p&gt;The Zip task also supports the merging of multiple zip files into the zip file.
+This is possible through either the &lt;i&gt;src&lt;/i&gt; attribute of any nested filesets
+or by using the special nested fileset &lt;i&gt;zipgroupfileset&lt;/i&gt;.&lt;/p&gt;
+&lt;p&gt;The &lt;code&gt;update&lt;/code&gt; parameter controls what happens if the
+ZIP file already exists. When set to &lt;code&gt;yes&lt;/code&gt;, the ZIP file is
+updated with the files specified. (New files are added; old files are
+replaced with the new versions.) When set to &lt;code&gt;no&lt;/code&gt; (the
+default) the ZIP file is overwritten.&lt;/p&gt;
+&lt;p&gt;The &lt;code&gt;whenempty&lt;/code&gt; parameter controls what happens when no files match.
+If &lt;code&gt;skip&lt;/code&gt; (the default), the ZIP is not created and a warning is issued.
+If &lt;code&gt;fail&lt;/code&gt;, the ZIP is not created and the build is halted with an error.
+If &lt;code&gt;create&lt;/code&gt;, an empty ZIP file (explicitly zero entries) is created,
+which should be recognized as such by compliant ZIP manipulation tools.&lt;/p&gt;
+&lt;p&gt;This task will now use the platform's default character encoding
+for filenames - this is consistent with the command line ZIP tools,
+but causes problems if you try to open them from within Java and your
+filenames contain non US-ASCII characters. Use the encoding attribute
+and set it to UTF8 to create zip files that can safely be read by
+Java.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="destfile" REQUIRED="yes">
+ <DESCRIPTION>the zip-file to create</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="zipfile" REQUIRED="yes">
+ <DESCRIPTION>the deprecated old name of destfile</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="basedir" REQUIRED="no">
+ <DESCRIPTION>the directory from which to zip the files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compress" REQUIRED="no">
+ <DESCRIPTION>Not only store data but also compress them, defaults to tru</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no">
+ <DESCRIPTION>The character encoding to use for filenamesinside the zip file. For a list of possible values see http://java.sun.com/products/jdk/1.2/docs/guide/internat/encoding.doc.html.Defaults to the platform's default character encoding</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filesonly" REQUIRED="no">
+ <DESCRIPTION>Store only file entries, defaults to fals</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beexcluded. No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="update" REQUIRED="no">
+ <DESCRIPTION>indicates whether to update or overwritethe destination file if it already exists</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="whenempty" REQUIRED="no">
+ <DESCRIPTION>behavior when no files match. Valid values are &quot;fail&quot;, &quot;skip&quot;, and &quot;create&quot;. Default is &quot;skip&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="duplicate" REQUIRED="no">
+ <DESCRIPTION>behavior when a duplicate file is found. Valid values are &quot;add&quot;, &quot;preserve&quot;, and &quot;fail&quot;. The default value is &quot;add&quot;. </DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="antlr">
+ <DESCRIPTION>&lt;p&gt;
+Invokes the &lt;a HREF=&quot;http://www.antlr.org/&quot; target=&quot;_top&quot;&gt;ANTLR&lt;/a&gt; Translator generator
+on a grammar file.
+&lt;/p&gt;
+&lt;p&gt;
+To use the ANTLR task, set the &lt;i&gt;target&lt;/i&gt; attribute to the name of the
+grammar file to process. Optionally, you can also set the
+&lt;i&gt;outputdirectory&lt;/i&gt; to write the generated file to a specific directory.
+Otherwise ANTLR writes the generated files to the directory containing
+the grammar file.
+&lt;/p&gt;
+&lt;p&gt;
+This task only invokes ANTLR if the grammar file is newer than the generated
+files.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;i&gt;
+To successfully run ANTLR, your best option is probably to build the whole
+jar with the provided script &lt;b&gt;mkalljar&lt;/b&gt; and drop the resulting jar (about 300KB)
+into ${ant.home}/lib. Dropping the default jar (70KB) is probably not enough
+for most needs and your only option will be to add ANTLR home directory
+to your classpath as described in ANTLR &lt;tt&gt;install.html&lt;/tt&gt; document.
+&lt;/i&gt;
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="target" REQUIRED="yes">
+ <DESCRIPTION>The grammar file to process</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="outputdirectory" REQUIRED="no">
+ <DESCRIPTION>The directory to write the generated files to. If not set, the filesare written to the directory containing the grammar file.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="glib" REQUIRED="no">
+ <DESCRIPTION>An optional super grammar file that the target grammar overrides. Thisfeature is only needed for advanced vocabularies.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="debug" REQUIRED="no">
+ <DESCRIPTION>When set to &quot;yes&quot;, this flag adds code to the generated parser that willlaunch the ParseView debugger upon invocation. The default is &quot;no&quot;.Note: ParseView is a separate component that needs to be installed or yourgrammar will have compilation errors.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="html" REQUIRED="no">
+ <DESCRIPTION>Emit an html version of the grammar with hyperlinked actions.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="diagnostic" REQUIRED="no">
+ <DESCRIPTION>Generates a text file with debugging infomation based on the target grammar.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="trace" REQUIRED="no">
+ <DESCRIPTION>Forces all rules to call traceIn/traceOut if set to &quot;yes&quot;.The default is &quot;no&quot;.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="traceparser" REQUIRED="no">
+ <DESCRIPTION>Only forces parser rules to call traceIn/traceOut if set to &quot;yes&quot;.The default is &quot;no&quot;.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="tracelexer" REQUIRED="no">
+ <DESCRIPTION>Only forces lexer rules to call traceIn/traceOut if set to &quot;yes&quot;.The default is &quot;no&quot;.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="tracetreewalker" REQUIRED="no">
+ <DESCRIPTION>Only forces tree walker rules to call traceIn/traceOut if set to&quot;yes&quot;. The default is &quot;no&quot;.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dir" REQUIRED="no">
+ <DESCRIPTION>The directory to invoke the VM in.</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="borlandgenerateclient">
+ <DESCRIPTION>&lt;p&gt;The BorlandGenerateClient is a task dedicated to Borland Application Server
+v 4.5. It offers to generate the client jar file corresponding to an ejb jar
+file.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="ejbjar" REQUIRED="yes">
+ <DESCRIPTION>ejb jar fil</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="debug" REQUIRED="no">
+ <DESCRIPTION>If true, turn on the debug mode for each borlandtools (java2iiop, iastool ...) default = fals</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="clientjar" REQUIRED="no">
+ <DESCRIPTION>client jar file name. If missing the client jarfile name is build using the ejbjar file name: ejbjar = hellobean-ejb.jar=&gt; hellobean-ejbclient.ja</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="mode" REQUIRED="no">
+ <DESCRIPTION>choose the command launching mode. Two values:java or fork. default = fork. java is not supported for version=5.Possibility to specify a classpath</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="version" REQUIRED="no, defaults to 4">
+ <DESCRIPTION>set the Borland Application Version.4 means B.A.S (Borland Application Server 4.x)5 means B.E.S (Borland Application Server 5.x)</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="cab">
+ <DESCRIPTION>&lt;p&gt;The cab task creates Microsoft cab archive files. It is invoked
+similar to the &lt;a href=&quot;../CoreTasks/jar.html&quot;&gt;jar&lt;/a&gt; or &lt;a href=&quot;../CoreTasks/zip.html&quot;&gt;zip&lt;/a&gt; tasks.
+This task will work on Windows using the external cabarc tool (provided by Microsoft)
+which must be located in your executable path.&lt;/p&gt;
+&lt;p&gt;To use this task on other platforms you need to download and compile libcabinet from
+&lt;a href=&quot;http://trill.cis.fordham.edu/~barbacha/cabinet_library/&quot;&gt;
+http://trill.cis.fordham.edu/~barbacha/cabinet_library/&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;See the section on &lt;a href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based
+tasks&lt;/a&gt;, on how the inclusion/exclusion of files works, and how to
+write patterns.&lt;/p&gt;
+&lt;p&gt;This task forms an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt; and
+supports all attributes of &lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt;
+(&lt;code&gt;dir&lt;/code&gt; becomes &lt;code&gt;basedir&lt;/code&gt;) as well as the nested
+&lt;code&gt;&amp;lt;include&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;exclude&amp;gt;&lt;/code&gt; and
+&lt;code&gt;&amp;lt;patternset&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="cabfile" REQUIRED="yes">
+ <DESCRIPTION>the name of the cab file to create</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="basedir" REQUIRED="yes">
+ <DESCRIPTION>the directory to start archiving files from</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no">
+ <DESCRIPTION>set to &quot;yes&quot; if you want to see the output fromthe cabarc tool. defaults to &quot;no&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compress" REQUIRED="no">
+ <DESCRIPTION>set to &quot;no&quot; to store files without compressing.defaults to &quot;yes&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="options" REQUIRED="no">
+ <DESCRIPTION>use to set additional command-line options forthe cabarc tool. should not normally be necessary</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files thatmust be included. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files thatmust be excluded. No files (except default excludes) are excludedwhen omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be usedor not (&quot;yes&quot;/&quot;no&quot;). Default excludes are used when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="depend">
+ <DESCRIPTION>&lt;p&gt;
+The depend task works by determining which classes are out of date with
+respect to their source and then removing the class files of any other
+classes which depend on the out-of-date classes.
+&lt;/p&gt;
+&lt;p&gt; To determine the class dependencies, the depend task analyses the class
+files of all class files passed to it. Depend does not parse your source code in
+any way but relies upon the class references encoded into the class files by the
+compiler. This is generally faster than parsing the Java source.&lt;/p&gt;
+&lt;p&gt;
+To learn more about how this information is obtained from the class files,
+please refer to &lt;a href=&quot;http://java.sun.com/docs/books/vmspec/&quot;&gt;the Java
+Virtual Machine Specification&lt;/a&gt;
+&lt;/p&gt;
+&lt;p&gt; Since a class' dependencies only change when the class itself changes, the
+depend task is able to cache dependency information. Only those class files
+which have changed will have their dependency information re-analysed. Note that
+if you change a class' dependencies by changing the source, it will be
+recompiled anyway. You can examine the dependency files created to understand
+the dependencies of your classes. Please do not rely, however, on the format of
+the information, as it may change in a later release. &lt;/p&gt;
+&lt;p&gt; Once depend discovers all of the class dependencies, it &amp;quot;inverts&amp;quot;
+this relation to determine, for each class, which other classes are dependent
+upon it. This &amp;quot;affects&amp;quot; list is used to discover which classes are
+invalidated by the out of date class. The class files of the invalidated
+classes are removed, triggering the compilation of the affected classes. &lt;/p&gt;
+&lt;p&gt; The depend task supports an attribute, &amp;quot;closure&amp;quot; which controls
+whether depend will only consider direct class-class relationships or whether it
+will also consider transitive, indirect relationships. For example, say there
+are three classes, A, which depends on B, which in-turn depend on C. Now say
+that class C is out of date. Without closure, only class B would be removed by
+depend. With closure set, class A would also be removed. Normally direct
+relationships are sufficient - it is unusual for a class to depend on another
+without having a direct relationship. With closure set, you will notice that
+depend typically removes far more class files. &lt;/p&gt;
+&lt;p&gt;The classpath attribute for &lt;code&gt;&amp;lt;depend&amp;gt;&lt;/code&gt; is optional. If it is present,
+depend will check class dependencies against classes and jars on this classpath.
+Any classes which depend on an element from this classpath and which are older
+than that element will be deleted. A typical example where you would use this
+facility would be where you are building a utility jar and want to make sure
+classes which are out of date with respect to this jar are rebuilt. You should
+&lt;b&gt;not&lt;/b&gt; include jars in this classpath which you do not expect to change,
+such as the JDK runtime jar or third party jars, since doing so will just slow
+down the dependency check. This means that if you do use a classpath for the
+depend task it may be different from the classpath necessary to actually
+compile your code.&lt;/p&gt;
+&lt;h3&gt;Performance&lt;/h3&gt;
+&lt;p&gt; The performance of the depend task is dependent on a
+number of factors such as class relationship complexity and how many class files
+are out of date. The decision about whether it is cheaper to just recompile all
+classes or to use the depend task will depend on the size of your project and
+how interrelated your classes are. &lt;/p&gt;
+&lt;h3&gt;Limitations&lt;/h3&gt;
+&lt;p&gt; There are some source dependencies which depend will not detect. &lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;If the Java compiler optimizes away a class relationship,
+there can be a source dependency without a class dependency. &lt;/li&gt;
+&lt;li&gt;Non public classes cause two problems. Firstly depend cannot relate
+the class file to a source file. In the future this may be addressed
+using the source file attribute in the classfile. Secondly, neither
+depend nor the compiler tasks can detect when a non public class is
+missing. Inner classes are handled by the depend task.&lt;/li&gt;
+&lt;/ul&gt;
+The most obvious example of these limitations is that the task can't tell
+which classes to recompile when a constant primitive data type exported
+by other classes is changed. For example, a change in the definition of
+something like
+&lt;pre&gt;
+public final class Constants {
+public final static boolean DEBUG=false;
+}
+&lt;/pre&gt; will not be picked up by other classes.
+</DESCRIPTION>
+ <ATTRIBUTE NAME="srcdir" REQUIRED="yes">
+ <DESCRIPTION>This is the directory where the source exists. dependwill examine this to determine which classes are out of date. If you use multiplesource directories you can pass this attribute a path of source directories</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="destdir" REQUIRED="no">
+ <DESCRIPTION>This is the root directory of the class files whichwill be analysed. If this is not present, the srcdir is used</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="cache" REQUIRED="no">
+ <DESCRIPTION>This is a directory in which depend can store andretrieve dependency information. If this is not present, depend will notuse a cache</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="closure" REQUIRED="no">
+ <DESCRIPTION>This attribute controls whether depend only removesclasses which directly depend on out of date classes. If this is set to true,depend will traverse the class dependency graph deleting all affectedclasses. Defaults to fals</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dump" REQUIRED="no">
+ <DESCRIPTION>If true the dependency information will be written to the debug level log</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>The classpath containg jars and classes for which &lt;depend&gt; should alsocheck dependencie</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="echoproperties">
+ <DESCRIPTION>&lt;p&gt;Displays all the current properties in the project. The output can be
+sent to a file if desired. You can also specify a subset of properties
+to save by naming a prefix: only properties starting with this
+prefix will be saved. This task can be used as a somewhat contrived
+means of returning data from an &lt;tt&gt;&amp;lt;ant&amp;gt;&lt;/tt&gt; invocation,
+but is really for debugging buildfiles.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="destfile" REQUIRED="no">
+ <DESCRIPTION>If specified, the value indicates the name of thefile to send the output of the statement to. The generated output fileis compatible for loading by any Java application as a property file.If not specified, then the output will go to the Ant log</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="prefix" REQUIRED="no">
+ <DESCRIPTION>a prefix which is used to filter the propertiesonly those properties starting with this prefix will be echoed.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no">
+ <DESCRIPTION>By default, the &quot;failonerror&quot; attribute is enabled.If an error occurs while writing the properties to a file, and thisattribute is enabled, then a BuildException will be thrown, causing thebuild to fail. If disabled, then IO errors will be reported as a logstatement, and the build will continue without failure from this task</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="ftp">
+ <DESCRIPTION>&lt;p&gt;The ftp task implements a basic FTP client that can send, receive,
+list, delete files, and create directories. See below for descriptions and examples of how
+to perform each task.&lt;/p&gt;
+&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; This task depends on external libraries not included in the Ant distribution.
+See &lt;a href=&quot;../install.html#librarydependencies&quot;&gt;Library Dependencies&lt;/a&gt; for more information.&lt;/p&gt;
+&lt;p&gt;The ftp task makes no attempt to determine what file system syntax is
+required by the remote server, and defaults to Unix standards.
+&lt;i&gt;remotedir&lt;/i&gt; must be specified in the exact syntax required by the ftp
+server. If the usual Unix conventions are not supported by the server,
+&lt;i&gt;separator&lt;/i&gt; can be used to set the file separator that should be used
+instead.&lt;/p&gt;
+&lt;p&gt;See the section on &lt;a href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based
+tasks&lt;/a&gt;, on how the inclusion/exclusion of files works, and how to
+write patterns.&lt;/p&gt;
+&lt;p&gt;
+&lt;b&gt;Warning: &lt;/b&gt; for the get and delete actions to work properly
+with a Windows 2000 ftp server, it needs to be configured to generate
+Unix style listings, and not the default MS-DOS listing. Or someone needs to write
+the code to parse MS-DOS listings -any takers?
+</DESCRIPTION>
+ <ATTRIBUTE NAME="server" REQUIRED="yes">
+ <DESCRIPTION>the address of the remote ftp server</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="port" REQUIRED="no">
+ <DESCRIPTION>the port number of the remote ftp server.Defaults to port 21</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="userid" REQUIRED="yes">
+ <DESCRIPTION>the login id to use on the ftp server</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="password" REQUIRED="yes">
+ <DESCRIPTION>the login password to use on the ftp server</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="remotedir" REQUIRED="no">
+ <DESCRIPTION>the directory to which to upload files on the ftp server</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="action" REQUIRED="no">
+ <DESCRIPTION>the ftp action to perform, defaulting to &quot;send&quot;. Currently supports &quot;put&quot;, &quot;get&quot;,&quot;del&quot;, &quot;list&quot;, &quot;chmod&quot; and &quot;mkdir&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="binary" REQUIRED="no">
+ <DESCRIPTION>selects binary-mode (&quot;yes&quot;) or text-mode (&quot;no&quot;) transfers. Defaults to &quot;yes</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="passive" REQUIRED="no">
+ <DESCRIPTION>selects passive-mode (&quot;yes&quot;) transfers. Defaults to &quot;no</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no">
+ <DESCRIPTION>displays information on each file transferred if set to &quot;yes&quot;. Defaults to &quot;no&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="depends" REQUIRED="no">
+ <DESCRIPTION>transfers only new or changed files if set to &quot;yes&quot;. Defaults to &quot;no&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="newer" REQUIRED="no">
+ <DESCRIPTION>a synonym for depends</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="separator" REQUIRED="no">
+ <DESCRIPTION>sets the file separator used on the ftp server.Defaults to &quot;/&quot;</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="umask" REQUIRED="no">
+ <DESCRIPTION>sets the default file permissions for new files,unix only</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="chmod" REQUIRED="no">
+ <DESCRIPTION>sets or changes file permissions for new or existing files,unix only. If used with a put action, chmod will be issued for each file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="listing" REQUIRED="no">
+ <DESCRIPTION>the file to write results of the &quot;list&quot; action.Required for the &quot;list&quot; action, ignored otherwise</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="ignorenoncriticalerrors" REQUIRED="no">
+ <DESCRIPTION>flag which permits the task to ignore some non-fatal errorcodes sent by some servers during directory creation: wu-ftp in particular.Default: fals</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="skipfailedtransfers" REQUIRED="no">
+ <DESCRIPTION>flag which enables unsuccessful file put, deleteand get operations to be skipped with a warning and theremainder of the files still transferred. Default: fals</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="icontract">
+ <DESCRIPTION>&lt;P&gt;
+Instruments Java classes with &lt;a href=&quot;http://www.reliable-systems.com/tools/&quot;&gt;iContract&lt;/a&gt;
+DBC preprocessor.&lt;br&gt;
+The task can generate a properties file for &lt;a href=&quot;http://home.sol.no/~hellesoy/icplus.html&quot;&gt;iControl&lt;/a&gt;,
+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.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="srcdir" REQUIRED="yes">
+ <DESCRIPTION>Location of the java files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="instrumentdir" REQUIRED="yes">
+ <DESCRIPTION>Indicates where the instrumented source files should go</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="repositorydir" REQUIRED="yes">
+ <DESCRIPTION>Indicates where the repository source files should go</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="builddir" REQUIRED="no">
+ <DESCRIPTION>Indicates where the compiled instrumented classes should go.Defaults to the value of instrumentdir.NOTE: Don't use the same directory for compiled instrumented classesand uninstrumented classes. It will break the dependency checking. (Classes willnot be reinstrumented if you change them)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="repositorybuilddir" REQUIRED="no">
+ <DESCRIPTION>Indicates where the compiled repository classes should go.Defaults to the value of repositorydir</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="pre" REQUIRED="no">
+ <DESCRIPTION>Indicates whether or not to instrument for preconditions.Defaults to true unless controlfile is specified, in which case itdefaults to false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="post" REQUIRED="no">
+ <DESCRIPTION>Indicates whether or not to instrument for postconditions.Defaults to true unless controlfile is specified, in which case itdefaults to false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="invariant" REQUIRED="no">
+ <DESCRIPTION>Indicates whether or not to instrument for invariants.Defaults to true unless controlfile is specified, in which case itdefaults to false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failthrowable" REQUIRED="no">
+ <DESCRIPTION>The full name of the Throwable (Exception) that should bethrown when an assertion is violated. Defaults to java.lang.Erro</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbosity" REQUIRED="no">
+ <DESCRIPTION>Indicates the verbosity level of iContract. Any combinationof error*,warning*,note*,info*,progress*,debug* (comma separated) can beused. Defaults to error</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="quiet" REQUIRED="no">
+ <DESCRIPTION>Indicates if iContract should be quiet. Turn it off if many your classes extend uninstrumented classesand you don't want warnings about this. Defaults to fals</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="updateicontrol" REQUIRED="no">
+ <DESCRIPTION>If set to true, it indicates that the properties file foriControl in the current directory should be updated (or created if it doesn't exist).Defaults to false</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="controlfile" REQUIRED="only if updateicontrol=true">
+ <DESCRIPTION>The name of the control file to pass to iContract. Consider using iControl to generate the file.Default is not to pass a file.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classdir" REQUIRED="only if updateicontrol=true">
+ <DESCRIPTION>Indicates where compiled (unistrumented) classes are located.This is required in order to properly update the icontrol.properties file, notfor instrumentation</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="targets" REQUIRED="no">
+ <DESCRIPTION>Name of the file that will be generated by this task, which lists all theclasses that iContract will instrument. If specified, the file will not be deleted after execution.If not specified, a file will still be created, but it will be deleted after execution</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="jarlib-available">
+ <DESCRIPTION>&lt;p&gt;Check whether an extension is present in a fileset or an extensionSet.
+If the extension is present then a property is set.&lt;/p&gt;
+&lt;p&gt;Note that this task
+works with extensions as defined by the &quot;Optional Package&quot; specification.
+For more information about optional packages, see the document
+&lt;em&gt;Optional Package Versioning&lt;/em&gt; in the documentation bundle for your
+Java2 Standard Edition package, in file
+&lt;code&gt;guide/extensions/versioning.html&lt;/code&gt; or online at
+&lt;a href=&quot;http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html&quot;&gt;
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;See the Extension and ExtensionSet documentation for further details&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="property" REQUIRED="yes">
+ <DESCRIPTION>The name of property to set if extensions is available</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="file" REQUIRED="no, one of file, nested
+ extensionset or nested fileset must be present.">
+ <DESCRIPTION>The file to check for extensio</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="jarlib-display">
+ <DESCRIPTION>&lt;p&gt;Display the &quot;Optional Package&quot; and &quot;Package Specification&quot; information
+contained within the specified jars.&lt;/p&gt;
+&lt;p&gt;Note that this task
+works with extensions as defined by the &quot;Optional Package&quot; specification.
+For more information about optional packages, see the document
+&lt;em&gt;Optional Package Versioning&lt;/em&gt; in the documentation bundle for your
+Java2 Standard Edition package, in file
+&lt;code&gt;guide/extensions/versioning.html&lt;/code&gt; or online at
+&lt;a href=&quot;http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html&quot;&gt;
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;See the Extension and ExtensionSet documentation for further details&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="file" REQUIRED="no, but one of file or fileset must be
+ present.">
+ <DESCRIPTION>The file to display extension information about</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="jarlib-manifest">
+ <DESCRIPTION>&lt;p&gt;Task to generate a manifest that declares all the dependencies
+in manifest. The dependencies are determined by looking in the
+specified path and searching for Extension / &quot;Optional Package&quot;
+specifications in the manifests of the jars.&lt;/p&gt;
+&lt;p&gt;Note that this task
+works with extensions as defined by the &quot;Optional Package&quot; specification.
+For more information about optional packages, see the document
+&lt;em&gt;Optional Package Versioning&lt;/em&gt; in the documentation bundle for your
+Java2 Standard Edition package, in file
+&lt;code&gt;guide/extensions/versioning.html&lt;/code&gt; or online at
+&lt;a href=&quot;http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html&quot;&gt;
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;See the Extension and ExtensionSet documentation for further details&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="destfile" REQUIRED="yes.">
+ <DESCRIPTION>The file to generate Manifest int</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="jarlib-resolve">
+ <DESCRIPTION>&lt;p&gt;Try to locate a jar to satisfy an extension and place
+location of jar into property. The task allows you to
+add a number of resolvers that are capable of locating a
+library for a specifc extension. Each resolver will be attempted
+in specified order until library is found or no resolvers are left.
+If no resolvers are left and failOnError is true then a BuildException
+will be thrown.&lt;/p&gt;
+&lt;p&gt;Note that this task
+works with extensions as defined by the &quot;Optional Package&quot; specification.
+For more information about optional packages, see the document
+&lt;em&gt;Optional Package Versioning&lt;/em&gt; in the documentation bundle for your
+Java2 Standard Edition package, in file
+&lt;code&gt;guide/extensions/versioning.html&lt;/code&gt; or online at
+&lt;a href=&quot;http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html&quot;&gt;
+http://java.sun.com/j2se/1.3/docs/guide/extensions/versioning.html&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;See the Extension and ExtensionSet documentation for further details&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="property" REQUIRED="yes">
+ <DESCRIPTION>The name of property to set to library location</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no, defaults to true.">
+ <DESCRIPTION>True if failure to locate library should result in build exception</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="checkextension" REQUIRED="no, defaults to true.">
+ <DESCRIPTION>True if librarys returned by nested resolvers should be checked to see ifthey supply extension</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="javacc">
+ <DESCRIPTION>&lt;p&gt;
+Invokes the &lt;a HREF=&quot;http://www.webgain.com/products/java_cc/&quot; target=&quot;_top&quot;&gt;JavaCC&lt;/a&gt; compiler
+compiler on a grammar file.
+&lt;/p&gt;
+&lt;p&gt;
+To use the javacc task, set the &lt;i&gt;target&lt;/i&gt; attribute to the name of the
+grammar file to process. You also need to specify the directory containing
+the JavaCC installation using the &lt;i&gt;javacchome&lt;/i&gt; attribute, so that ant
+can find the JavaCC classes. Optionally, you can also set the
+&lt;i&gt;outputdirectory&lt;/i&gt; to write the generated file to a specific directory.
+Otherwise javacc writes the generated files to the directory containing
+the grammar file.
+&lt;/p&gt;
+&lt;p&gt;
+This task only invokes JavaCC if the grammar file is newer than the generated
+Java files. javacc assumes that the Java class name of the generated parser
+is the same as the name of the grammar file, ignoring the .jj.
+If this is not the case, the javacc task will still work, but it will always
+generate the output files.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="target" REQUIRED="yes">
+ <DESCRIPTION>The grammar file to process</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="javacchome" REQUIRED="yes">
+ <DESCRIPTION>The directory containing the JavaCC distribution</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="outputdirectory" REQUIRED="no">
+ <DESCRIPTION>The directory to write the generated files to. If not set, the filesare written to the directory containing the grammar file.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="buildparser" REQUIRED="no">
+ <DESCRIPTION>Sets the BUILD_PARSER grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="buildtokenmanager" REQUIRED="no">
+ <DESCRIPTION>Sets the BUILD_TOKEN_MANAGER grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="cachetokens" REQUIRED="no">
+ <DESCRIPTION>Sets the CACHE_TOKENS grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="choiceambiguitycheck" REQUIRED="no">
+ <DESCRIPTION>Sets the CHOICE_AMBIGUITY_CHECK grammar option. This is an integer option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="commontokenaction" REQUIRED="no">
+ <DESCRIPTION>Sets the COMMON_TOKEN_ACTION grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="debuglookahead" REQUIRED="no">
+ <DESCRIPTION>Sets the DEBUG_LOOKAHEAD grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="debugparser" REQUIRED="no">
+ <DESCRIPTION>Sets the DEBUG_PARSER grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="debugtokenmanager" REQUIRED="no">
+ <DESCRIPTION>Sets the DEBUG_TOKEN_MANAGER grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="errorreporting" REQUIRED="no">
+ <DESCRIPTION>Sets the ERROR_REPORTING grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="forcelacheck" REQUIRED="no">
+ <DESCRIPTION>Sets the FORCE_LA_CHECK grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="ignorecase" REQUIRED="no">
+ <DESCRIPTION>Sets the IGNORE_CASE grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="javaunicodeescape" REQUIRED="no">
+ <DESCRIPTION>Sets the JAVA_UNICODE_ESCAPE grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="lookahead" REQUIRED="no">
+ <DESCRIPTION>Sets the LOOKAHEAD grammar option. This is an integer option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="optimizetokenmanager" REQUIRED="no">
+ <DESCRIPTION>Sets the OPTIMIZE_TOKEN_MANAGER grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="otherambiguitycheck" REQUIRED="no">
+ <DESCRIPTION>Sets the OTHER_AMBIGUITY_CHECK grammar option. This is an integer option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="sanitycheck" REQUIRED="no">
+ <DESCRIPTION>Sets the SANITY_CHECK grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="static" REQUIRED="no">
+ <DESCRIPTION>Sets the STATIC grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="unicodeinput" REQUIRED="no">
+ <DESCRIPTION>Sets the UNICODE_INPUT grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="usercharstream" REQUIRED="no">
+ <DESCRIPTION>Sets the USER_CHAR_STREAM grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="usertokenmanager" REQUIRED="no">
+ <DESCRIPTION>Sets the USER_TOKEN_MANAGER grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="javah">
+ <DESCRIPTION>&lt;p&gt;Generates JNI headers from a Java class.&lt;/p&gt;
+&lt;p&gt; When this task executes, it will generate the C header and source files that
+are needed to implement native methods. JNI operates differently depending on
+whether &lt;a href=&quot;http://java.sun.com/j2se/1.3/docs/tooldocs/win32/javah.html&quot;&gt;JDK1.2&lt;/a&gt;
+(or later) or &lt;a href=&quot;http://java.sun.com/products/jdk/1.1/docs/tooldocs/win32/javah.html&quot;&gt;pre-JDK1.2&lt;/a&gt;
+systems are used.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="class" REQUIRED="yes">
+ <DESCRIPTION>the fully-qualified name of the class (or classes,separated by commas</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="outputfile" REQUIRED="yes">
+ <DESCRIPTION>concatenates the resulting header or source files for all the classes listed into this fil</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="destdir" REQUIRED="">
+ <DESCRIPTION>sets the directory where javah saves the header files or thestub files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="force" REQUIRED="no">
+ <DESCRIPTION>specifies that output files should always be written (JDK1.2 only</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="old" REQUIRED="no">
+ <DESCRIPTION>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="stubs" REQUIRED="no">
+ <DESCRIPTION>generate C declarations from the Java object file (used with old</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no">
+ <DESCRIPTION>causes Javah to print a message concerning the status of the generated file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>the classpath to use</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="bootclasspath" REQUIRED="no">
+ <DESCRIPTION>location of bootstrap class files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="extdirs" REQUIRED="no">
+ <DESCRIPTION>location of installed extensions</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="jdepend">
+ <DESCRIPTION>&lt;P&gt;Invokes the &lt;a href=&quot;http://www.clarkware.com/software/JDepend.html&quot;&gt;JDepend&lt;/a&gt; parser.&lt;/P&gt;
+&lt;P&gt;This parser &amp;quot;traverses a set of Java source file directories and generates design quality metrics for each Java package&amp;quot;.
+It allows to &amp;quot;automatically measure the quality of a design in terms of its extensibility, reusability, and maintainability to
+effectively manage and control package dependencies.&amp;quot;&lt;/P&gt;
+&lt;p&gt;Source file directories are defined by nested &lt;code&gt;&amp;lt;sourcespath&amp;gt;&lt;/code&gt;, see &lt;a href=&quot;#nested&quot;&gt;nested elements&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;Optionally, you can also set the &lt;code&gt;outputfile&lt;/code&gt; name where the output is stored. By default the task writes its report to the standard output.&lt;/P&gt;
+&lt;p&gt; The task requires at least the JDepend 1.2 version. &lt;/p&gt;
+&lt;P&gt;Note: whereas the JDepend tool can be customized to exclude some packages, the current jdepend And Task does not have parameters to allow these exclusions. Read JDepend specific documentation for that purpose.&lt;/P&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="outputfile" REQUIRED="no">
+ <DESCRIPTION>The output file name. If not set, the output is printed on the standard output</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="format" REQUIRED="no">
+ <DESCRIPTION>The format to write the output in. The default is &quot;text&quot;, the alternative is &quot;xml</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="fork" REQUIRED="no, default is &quot;off&quot;">
+ <DESCRIPTION>Run the tests in a separate VM</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="haltonerror" REQUIRED="no, default is &quot;off&quot;">
+ <DESCRIPTION>Stop the build process if an error occurs during the jdepend analysis</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="timeout" REQUIRED="no">
+ <DESCRIPTION>Cancel the operation if it doesn't finish in the given time (measured in milliseconds). (Ignored if fork is disabled.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="jvm" REQUIRED="no, default &quot;java&quot;">
+ <DESCRIPTION>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="dir" REQUIRED="no">
+ <DESCRIPTION>The directory to invoke the VM in. (Ignored if fork is disabled</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpathref" REQUIRED="no">
+ <DESCRIPTION>the classpath to use, given as reference to a PATH defined elsewhere</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="jjtree">
+ <DESCRIPTION>Invokes the &lt;a href=&quot;http://www.webgain.com/products/java_cc/&quot;&gt;JJTree&lt;/a&gt; preprocessor
+for the JavaCC compiler compiler. It inserts parse tree building actions
+at various places in the JavaCC source that it generates. The output of
+JJTree is run through JavaCC to create the parser.
+&lt;p&gt;To use the jjtree task, set the &lt;i&gt;target&lt;/i&gt; attribute to the name
+of the jjtree grammar file to process. You also need to specify the directory
+containing the JavaCC installation using the &lt;i&gt;javacchome&lt;/i&gt; attribute,
+so that ant can find the JavaCC classes. Optionally, you can also set the
+&lt;i&gt;outputdirectory&lt;/i&gt;
+to write the generated file to a specific directory. Otherwise jjtree writes
+the generated JavaCC grammar file to the directory containing the JJTree
+grammar file.&lt;/p&gt;
+&lt;p&gt;This task only invokes JJTree if the grammar file is newer than the
+generated JavaCC file.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="target" REQUIRED="yes">
+ <DESCRIPTION>The jjtree grammar file to process</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="javacchome" REQUIRED="yes">
+ <DESCRIPTION>The directory containing the JavaCC distribution</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="outputdirectory" REQUIRED="no">
+ <DESCRIPTION>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="buildnodefiles" REQUIRED="no">
+ <DESCRIPTION>Sets the BUILD_NODE_FILES grammar option. This is a booleanoption</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="multi" REQUIRED="no">
+ <DESCRIPTION>Sets the MULTI grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="nodedefaultvoid" REQUIRED="no">
+ <DESCRIPTION>Sets the NODE_DEFAULT_VOID grammar option. This is a booleanoption</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="nodefactory" REQUIRED="no">
+ <DESCRIPTION>Sets the NODE_FACTORY grammar option. This is boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="nodescopehook" REQUIRED="no">
+ <DESCRIPTION>Sets the NODE_SCOPE_HOOK grammar option. This is a booleanoption</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="nodeusesparser" REQUIRED="no">
+ <DESCRIPTION>Sets the NODE_USES_PARSER grammar option. This is a booleanoption</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="static" REQUIRED="no">
+ <DESCRIPTION>Sets the STATIC grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="visitor" REQUIRED="no">
+ <DESCRIPTION>Sets the VISITOR grammar option. This is a boolean option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="nodepackage" REQUIRED="no">
+ <DESCRIPTION>Sets the NODE_PACKAGE grammar option. This is a string option</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="visitorexception" REQUIRED="no">
+ <DESCRIPTION>Sets the VISITOR_EXCEPTION grammar option. This is a stringoption</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="nodeprefix" REQUIRED="no">
+ <DESCRIPTION>Sets the NODE_PREFIX grammar option. This is a string option</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="jlink">
+ <DESCRIPTION>&lt;p&gt;Links entries from sub-builds and libraries.&lt;/p&gt;
+&lt;p&gt;The jlink task can be used to build jar and zip files, similar to
+the &lt;i&gt;jar&lt;/i&gt; task.
+However, jlink provides options for controlling the way entries from
+input files
+are added to the output file. Specifically, capabilities for merging
+entries from
+multiple zip or jar files is available.&lt;/p&gt;
+&lt;p&gt;If a mergefile is specified directly (eg. at the top level of a
+&lt;i&gt;mergefiles&lt;/i&gt;
+pathelement) &lt;i&gt;and&lt;/i&gt; the mergefile ends in &amp;quot;.zip&amp;quot; or
+&amp;quot;.jar&amp;quot;,
+entries in the mergefile will be merged into the outfile. A file with
+any other extension
+will be added to the output file, even if it is specified in the
+mergefiles element.
+Directories specified in either the mergefiles or addfiles element
+are added to the
+output file as you would expect: all files in subdirectories are
+recursively added to
+the output file with appropriate prefixes in the output file
+(without merging).
+&lt;/p&gt;
+&lt;p&gt;
+In the case where duplicate entries and/or files are found among the
+files to be merged or
+added, jlink merges or adds the first entry and ignores all subsequent entries.
+&lt;/p&gt;
+&lt;p&gt;
+jlink ignores META-INF directories in mergefiles. Users should supply their
+own manifest information for the output file.
+&lt;/p&gt;
+&lt;p&gt;It is possible to refine the set of files that are being jlinked.
+This can be
+done with the &lt;i&gt;includes&lt;/i&gt;, &lt;i&gt;includesfile&lt;/i&gt;, &lt;i&gt;excludes&lt;/i&gt;,
+&lt;i&gt;excludesfile&lt;/i&gt;,
+and &lt;i&gt;defaultexcludes&lt;/i&gt; attributes on the &lt;i&gt;addfiles&lt;/i&gt; and
+&lt;i&gt;mergefiles&lt;/i&gt;
+nested elements. With the &lt;i&gt;includes&lt;/i&gt; or &lt;i&gt;includesfile&lt;/i&gt;
+attribute you specify the files you want to have included by using patterns.
+The &lt;i&gt;exclude&lt;/i&gt; or &lt;i&gt;excludesfile&lt;/i&gt; attribute is used to specify
+the files you want to have excluded. This is also done with patterns. And
+finally with the &lt;i&gt;defaultexcludes&lt;/i&gt; attribute, you can specify whether you
+want to use default exclusions or not. See the section on &lt;a
+href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based tasks&lt;/a&gt;, on how the
+inclusion/exclusion of files works, and how to write patterns. The patterns are
+relative to the &lt;i&gt;base&lt;/i&gt; directory.&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="outfile" REQUIRED="yes">
+ <DESCRIPTION>the path of the output file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compress" REQUIRED="no">
+ <DESCRIPTION>whether or not the output should be compressed. true,yes, or on result in compressed output.If omitted, output will be uncompressed (inflated)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="mergefiles" REQUIRED="at least one of
+ mergefiles or addfiles">
+ <DESCRIPTION>files to be merged into the output, if possible</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="addfiles" REQUIRED="">
+ <DESCRIPTION>files to be added to the output</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="jspc">
+ <DESCRIPTION>&lt;p&gt; Ant task to run the JSP compiler and turn JSP pages into Java source.
+&lt;p&gt;
+It can be used to precompile JSP pages for fast initial invocation
+of JSP pages, deployment on a server without the full JDK installed,
+or simply to syntax check the pages without deploying them.
+In most cases, a javac task is usually the next stage in the build process.
+The task does basic dependency checking to prevent unnecessary recompilation -this
+checking compares source and destination timestamps, and does not factor
+in class or taglib dependencies, or &amp;lt;jsp:include&amp;gt; references.
+&lt;p&gt;
+By default the task uses the Jasper JSP compiler. This
+means the task needs jasper.jar and jasper-runtime.jar, which come with
+builds of Tomcat 4/Catalina from the
+&lt;a href=&quot;http://jakarta.apache.org/tomcat/&quot;&gt;Jakarta Tomcat project&lt;/a&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="destdir" REQUIRED="yes">
+ <DESCRIPTION>Where to place the generated files. They are locatedunder here according to the given package name</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="srcdir" REQUIRED="yes">
+ <DESCRIPTION>Where to look for source jsp files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no">
+ <DESCRIPTION>The verbosity integer to pass to the compiler. Default=&quot;0</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="package" REQUIRED="no">
+ <DESCRIPTION>Name of the destination package for generated javaclasses</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compiler" REQUIRED="no">
+ <DESCRIPTION>class name of a JSP compiler adapte</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="ieplugin" REQUIRED="no">
+ <DESCRIPTION>Java Plugin classid for Internet Explorer</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="mapped" REQUIRED="no">
+ <DESCRIPTION>(boolean) Generate separate write() calls for each HTMLline in the JSP</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>The classpath to use to run the jsp compiler.This can also be specifiedby the nested element classpathPath)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpathref" REQUIRED="no">
+ <DESCRIPTION>A Reference. Asper classpat</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no">
+ <DESCRIPTION>flag to control action on compile failures: default=ye</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="uribase" REQUIRED="no">
+ <DESCRIPTION>The uri context of relative URIreferences in the JSP pages. If it does notexist then it is derived from the location of the filerelative to the declared or derived value of uriroot.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="uriroot" REQUIRED="no">
+ <DESCRIPTION>The root directory that uri files should be resolvedagainst.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compiler" REQUIRED="no">
+ <DESCRIPTION>Class name of jsp compiler adapter to use. Defaults tothe standard adapter for Jasper.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compilerclasspath" REQUIRED="no">
+ <DESCRIPTION>The classpath used to find the compiler adapter specifiedby the compiler attribute</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="junit">
+ <DESCRIPTION>&lt;p&gt;This task runs tests from the JUnit testing framework. The latest
+version of the framework can be found at
+&lt;a href=&quot;http://www.junit.org&quot;&gt;http://www.junit.org&lt;/a&gt;.
+This task has been tested with JUnit 3.0 up to JUnit 3.8.1; it won't
+work with versions prior to JUnit 3.0.&lt;/p&gt;
+&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This task depends on external libraries not included
+in the Ant distribution. See &lt;a href=&quot;../install.html#librarydependencies&quot;&gt;
+Library Dependencies&lt;/a&gt; for more information.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;strong&gt;Note&lt;/strong&gt;:
+You must have &lt;code&gt;junit.jar&lt;/code&gt; and the class files for the
+&lt;code&gt;&amp;lt;junit&amp;gt;&lt;/code&gt; task in the same classpath.
+You can do one of:
+&lt;ol&gt;
+&lt;li&gt;
+Put both &lt;code&gt;junit.jar&lt;/code&gt; and the optional tasks jar file in
+&lt;code&gt;ANT_HOME/lib&lt;/code&gt;.
+&lt;/li&gt;
+&lt;li&gt;
+Do not put either in &lt;code&gt;ANT_HOME/lib&lt;/code&gt;, and instead
+include their locations in your &lt;code&gt;CLASSPATH&lt;/code&gt; environment variable.
+&lt;/li&gt;
+&lt;li&gt;
+Do neither of the above, and instead, specify their locations using
+a &lt;code&gt;&amp;lt;classpath&amp;gt;&lt;/code&gt; element in the buildfile.
+See &lt;a href=&quot;../../faq.html#delegating-classloader&quot; target=&quot;_top&quot;&gt;the
+FAQ&lt;/a&gt; for details.
+&lt;/ol&gt;
+&lt;/p&gt;
+&lt;p&gt;Tests are defined by nested &lt;code&gt;test&lt;/code&gt; or
+&lt;code&gt;batchtest&lt;/code&gt; tags (see &lt;a href=&quot;#nested&quot;&gt;nested
+elements&lt;/a&gt;).&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="printsummary" REQUIRED="no; default is off.">
+ <DESCRIPTION>Print one-line statistics for each testcase. Cantake the values on,off, andwithOutAndErr.withOutAndErr is the sameas on but also includes the output of the testas written to System.out and System.err</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="fork" REQUIRED="no; default is off.">
+ <DESCRIPTION>Run the tests in a separate VM</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="haltonerror" REQUIRED="no; default is off.">
+ <DESCRIPTION>Stop the build process if an error occurs during the testrun</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="errorproperty" REQUIRED="no">
+ <DESCRIPTION>The name of a property to set in the event of an error</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="haltonfailure" REQUIRED="no; default is off.">
+ <DESCRIPTION>Stop the build process if a test fails (errors areconsidered failures as well)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failureproperty" REQUIRED="no.">
+ <DESCRIPTION>The name of a property to set in the event of a failure(errors are considered failures as well)</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filtertrace" REQUIRED="no; default is on.">
+ <DESCRIPTION>Filter out Junit and Ant stack frames from error and failure stack traces</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="timeout" REQUIRED="no">
+ <DESCRIPTION>Cancel the individual tests if they don't finishin the given time (measured in milliseconds). Ignored iffork is disabled</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="maxmemory" REQUIRED="no">
+ <DESCRIPTION>Maximum amount of memory to allocate to the forked VM.Ignored if fork is disabled</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="jvm" REQUIRED="no; default is java.">
+ <DESCRIPTION>The command used to invoke the Java Virtual Machine,default is 'java'. The command is resolved byjava.lang.Runtime.exec().Ignored if fork is disabled</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dir" REQUIRED="no">
+ <DESCRIPTION>The directory in which to invoke the VM. Ignored iffork is disabled</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="newenvironment" REQUIRED="no; default is false.">
+ <DESCRIPTION>Do not propagate the old environment when newenvironment variables are specified. Ignored if fork isdisabled</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includeantruntime" REQUIRED="no; default is true.">
+ <DESCRIPTION>Implicitly add the Ant classes required to runthe tests and JUnit to the classpath in forked mode</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="showoutput" REQUIRED="no">
+ <DESCRIPTION>Send any output generated by tests to Ant'slogging system as well as to the formatters. By default only theformatters receive the output</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="maudit">
+ <DESCRIPTION>&lt;p&gt;
+Invokes the Metamata Audit/ Webgain Quality Analyzer on a set of Java files.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;i&gt;maudit&lt;/i&gt; 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 &lt;tt&gt;etc&lt;/tt&gt; directory, so that an HTML report can be generated from the XML file.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="tofile" REQUIRED="yes">
+ <DESCRIPTION>The XML file to which the Audit result should be written to</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="metamatahome" REQUIRED="yes">
+ <DESCRIPTION>The home directory containing the Metamata distribution</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="fix" REQUIRED="no.default to false.">
+ <DESCRIPTION>Automatically fix certain errors (those marked as fixable in the manual).</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="list" REQUIRED="no. default to false.">
+ <DESCRIPTION>Creates listing file for each audited file. A .maudit file will be generated in thesame location as the source file.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="unused" REQUIRED="no. default to false.">
+ <DESCRIPTION>Finds declarations unused in search paths. It will look for unused global declarationsin the source code within a use domain specified by the searchpath element.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="maxmemory" REQUIRED="no">
+ <DESCRIPTION>Set the maximum memory for the JVM. this is a convenientway to set the -mx or -Xmx argument</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="mimemail">
+ <DESCRIPTION>&lt;p&gt;Sends SMTP mail with MIME attachments.
+&lt;a href=&quot;http://java.sun.com/products/javamail/index.html&quot;&gt;JavaMail&lt;/a&gt;
+and &lt;a href=&quot;http://java.sun.com/products/javabeans/glasgow/jaf.html&quot;&gt;Java
+Activation Framework&lt;/a&gt; are required for this task.&lt;/p&gt;
+&lt;p&gt;Multiple files can be attached using &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSets.&lt;/a&gt;&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="message" REQUIRED="no, but only one of of 'message' or
+ 'messagefile' may be specified. if not specified, a fileset must be
+ provided.">
+ <DESCRIPTION>The message bod</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="messagefile" REQUIRED="">
+ <DESCRIPTION>A filename to read and used as the message bod</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="messagemimetype" REQUIRED="no, defaults to &quot;text/plain&quot;">
+ <DESCRIPTION>MIME type to use for 'message' or 'messageFile' whenattached</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="tolist" REQUIRED="yes, at least one of 'tolist', 'cclist',
+ or 'bcclist' must be specified.">
+ <DESCRIPTION>Comma-separated list of To: recipient</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="cclist" REQUIRED="">
+ <DESCRIPTION>Comma-separated list of CC: recipient</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="bcclist" REQUIRED="">
+ <DESCRIPTION>Comma-separated list of BCC: recipient</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="mailhost" REQUIRED="no, default to &quot;localhost&quot;">
+ <DESCRIPTION>Host name of the mail server</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="subject" REQUIRED="no">
+ <DESCRIPTION>Email subject line</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="from" REQUIRED="yes">
+ <DESCRIPTION>Email address of sender</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="failonerror" REQUIRED="no, default to &quot;true&quot;">
+ <DESCRIPTION>Stop the build process if an error occurs sending thee-mail</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="mmetrics">
+ <DESCRIPTION>&lt;p&gt;
+Invokes the Metamata Metrics / WebGain Quality Analyzer source code
+analyzer on a set of Java files.
+&lt;/p&gt;
+&lt;p&gt;
+&lt;i&gt;mmetrics&lt;/i&gt; will compute the metrics of a set of Java files and write the results to an XML
+file. As a convenience, a stylesheet is given in &lt;tt&gt;etc&lt;/tt&gt; directory, so that an HTML report can be generated from the XML file.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="metamatahome" REQUIRED="yes">
+ <DESCRIPTION>The home directory containing the Metamata distribution</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="tofile" REQUIRED="yes">
+ <DESCRIPTION>The XML were the resulting metrics will be written to</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="granularity" REQUIRED="yes">
+ <DESCRIPTION>Metrics granularity of the source files. Must be eitherfiles (compilation-units), types (types and compilation-units) or methods(methods, types and compilation-units).</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="maxmemory" REQUIRED="no">
+ <DESCRIPTION>Set the maximum memory for the JVM. this is a convenientway to set the -mx or -Xmx argument</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="mparse">
+ <DESCRIPTION>&lt;p&gt;
+Invokes the Metamata &lt;a HREF=&quot;http://www.metamata.com/parse.html&quot;&gt;MParse&lt;/a&gt; compiler
+compiler on a grammar file.
+&lt;/p&gt;
+&lt;p&gt;
+To use the &lt;i&gt;mparse&lt;/i&gt; task, set the &lt;i&gt;target&lt;/i&gt; attribute to the name of the
+grammar file to process. You also need to specify the directory containing
+the Metamata installation using the &lt;i&gt;metamatahome&lt;/i&gt; attribute, so that Ant
+can find the MParse classes.
+&lt;/p&gt;
+&lt;p&gt;
+This task only invokes MParse if the grammar file is newer than the generated
+Java files. MParse assumes that the Java class name of the generated parser
+is the same as the name of the grammar file, less the .jj extension.
+&lt;/p&gt;
+&lt;p&gt;For additional information about MParse, please consult the online manual available &lt;a href=&quot;http://download.metamata.com/parse.pdf&quot;&gt;here&lt;/a&gt;
+(PDF)
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="target" REQUIRED="yes">
+ <DESCRIPTION>The .jj grammar file to process. It will only be processedif the grammar is newer than the corresponding .java file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="metamatahome" REQUIRED="yes">
+ <DESCRIPTION>The home directory containing the Metamata distribution</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no">
+ <DESCRIPTION>Enable all messages</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="debugparser" REQUIRED="no">
+ <DESCRIPTION>Enables parser debugging</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="debugscanner" REQUIRED="no">
+ <DESCRIPTION>Enables scanner debugging</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="cleanup" REQUIRED="no. default to false">
+ <DESCRIPTION>Remove the intermediate SunJavaCC file created during the transformation of the grammar file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="maxmemory" REQUIRED="no">
+ <DESCRIPTION>Set the maximum memory for the JVM. this is a convenientway to set the -mx or -Xmx argument</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="native2ascii">
+ <DESCRIPTION>&lt;p&gt;
+Converts files from native encodings to ASCII with escaped Unicode.
+A common usage is to convert source files maintained in a native
+operating system encoding, to ASCII prior to compilation.
+&lt;/p&gt;
+&lt;p&gt;
+Files in the directory &lt;em&gt;src&lt;/em&gt;
+are converted from a native encoding to ASCII.
+By default, all files in the directory are converted.
+However, conversion may be limited to selected files using
+&lt;em&gt;includes&lt;/em&gt; and &lt;em&gt;excludes&lt;/em&gt; attributes.
+For more information on file matching patterns,
+see the section on
+&lt;a href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based tasks&lt;/a&gt;.
+If no &lt;em&gt;encoding&lt;/em&gt; is specified,
+the default encoding for the JVM is used.
+If &lt;em&gt;ext&lt;/em&gt; is specified, then output files are renamed
+to use it as a new extension.
+More sophisticated file name translations can be achieved using a nested
+&lt;em&gt;&amp;lt;mapper&amp;gt;&lt;/em&gt; element. By default an
+&lt;a href=&quot;../CoreTypes/mapper.html#identity-mapper&quot;&gt;identity mapper&lt;/a&gt; will be used.
+If &lt;em&gt;dest&lt;/em&gt; and &lt;em&gt;src&lt;/em&gt; point to the same directory,
+the &lt;em&gt;ext&lt;/em&gt; attribute or a nested &lt;em&gt;&amp;lt;mapper&amp;gt;&lt;/em&gt;
+is required.
+&lt;/p&gt;
+&lt;p&gt;
+This task forms an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;File Set&lt;/a&gt;,
+and supports all attributes of &lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt;
+(&lt;code&gt;dir&lt;/code&gt; becomes &lt;code&gt;src&lt;/code&gt;) as well as
+nested &lt;code&gt;&amp;lt;include&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;exclude&amp;gt;&lt;/code&gt;,
+and &lt;code&gt;&amp;lt;patternset&amp;gt;&lt;/code&gt; elements.
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="reverse" REQUIRED="no">
+ <DESCRIPTION>Reverse the sense of the conversion,i.e. convert from ASCII to nativ</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="encoding" REQUIRED="no">
+ <DESCRIPTION>The native encoding the files are in(default is the default encoding for the JVM</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="src" REQUIRED="no">
+ <DESCRIPTION>The directory to find files in (default is basedir</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="dest" REQUIRED="yes">
+ <DESCRIPTION>The directory to output file t</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="ext" REQUIRED="no">
+ <DESCRIPTION>File extension to use in renaming output file</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;).Default excludes are used when omitted.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must be excluded.No files (except default excludes) are excluded when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="netrexxc">
+ <DESCRIPTION>&lt;p&gt;Compiles a &lt;a href=&quot;http://www2.hursley.ibm.com/netrexx&quot; target=&quot;_top&quot;&gt;NetRexx&lt;/a&gt;
+source tree within the running (Ant) VM.&lt;/p&gt;
+&lt;p&gt;The source and destination directory will be recursively scanned for
+NetRexx source files to compile. Only NetRexx files that have no corresponding
+class file or where the class file is older than the java file will be compiled.&lt;/p&gt;
+&lt;p&gt;Files in the source tree are copied to the destination directory,
+allowing support files to be located properly in the classpath. The source
+files are copied because the NetRexx compiler cannot produce class files in a
+specific directory via parameters&lt;/p&gt;
+&lt;p&gt;The directory structure of the source tree should follow the package
+hierarchy.&lt;/p&gt;
+&lt;p&gt;It is possible to refine the set of files that are being compiled/copied.
+This can be done with the &lt;i&gt;includes&lt;/i&gt;, &lt;i&gt;includesfile&lt;/i&gt;, &lt;i&gt;excludes&lt;/i&gt;, &lt;i&gt;excludesfile&lt;/i&gt; and
+&lt;i&gt;defaultexcludes&lt;/i&gt; attributes. With the &lt;i&gt;includes&lt;/i&gt; or &lt;i&gt;includesfile&lt;/i&gt; attribute you
+specify the files you want to have included by using patterns. The
+&lt;i&gt;exclude&lt;/i&gt; or &lt;i&gt;excludesfile&lt;/i&gt; attribute is used to specify the files you want to have
+excluded. This is also done with patterns. And finally with the
+&lt;i&gt;defaultexcludes&lt;/i&gt; attribute, you can specify whether you
+want to use default exclusions or not. See the section on &lt;a
+href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based tasks&lt;/a&gt;, on how the
+inclusion/exclusion of files works, and how to write patterns.&lt;/p&gt;
+&lt;p&gt;This task forms an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt; and
+supports all attributes of &lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt;
+(&lt;code&gt;dir&lt;/code&gt; becomes &lt;code&gt;srcdir&lt;/code&gt;) as well as the nested
+&lt;code&gt;&amp;lt;include&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;exclude&amp;gt;&lt;/code&gt; and
+&lt;code&gt;&amp;lt;patternset&amp;gt;&lt;/code&gt; elements.&lt;/p&gt;
+&lt;p&gt;All properties except classpath, srcdir and destDir are also available as properties in the form
+&lt;code&gt;ant.netrexxc.&lt;i&gt;attributename&lt;/i&gt;&lt;/code&gt;, eg.&lt;br&gt;
+&lt;code&gt;&amp;lt;property name=&quot;ant.netrexxc.verbose&quot; value=&quot;noverbose&quot;/&amp;gt;&lt;/code&gt;&lt;br&gt;
+or from the command line as&lt;br&gt;
+&lt;code&gt;ant -Dant.netrexxc.verbose=noverbose ...&lt;/code&gt;
+&lt;/p&gt;
+</DESCRIPTION>
+ <ATTRIBUTE NAME="binary" REQUIRED="no">
+ <DESCRIPTION>Whether literals are treated as the java binarytype rather than the NetRexx type</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="classpath" REQUIRED="no">
+ <DESCRIPTION>The classpath to use during compilatio</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="comments" REQUIRED="no">
+ <DESCRIPTION>Whether comments are passed through to thegenerated java sourc</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compact" REQUIRED="no">
+ <DESCRIPTION>Whether error messages come out in compact orverbose format. Default is the compact format</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="compile" REQUIRED="no">
+ <DESCRIPTION>Whether the NetRexx compiler should compile thegenerated java cod</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="console" REQUIRED="no">
+ <DESCRIPTION>Whether or not messages should be displayed on the'console</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="crossref" REQUIRED="no">
+ <DESCRIPTION>Whether variable cross references are generate</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="decimal" REQUIRED="no">
+ <DESCRIPTION>Whether decimal arithmetic should be used for theNetRexx cod</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="defaultexcludes" REQUIRED="no">
+ <DESCRIPTION>indicates whether default excludes should be used or not(&quot;yes&quot;/&quot;no&quot;). Default excludes are used whenomitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="destdir" REQUIRED="yes">
+ <DESCRIPTION>the destination directory into which the NetRexxsource files should be copied and then compile</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="diag" REQUIRED="no">
+ <DESCRIPTION>Whether diagnostic information about the compile isgenerate</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beexcluded. No files (except default excludes) are excluded whenomitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="excludesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an exclude patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="explicit" REQUIRED="no">
+ <DESCRIPTION>Whether variables must be declared explicitlybefore us</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="format" REQUIRED="no">
+ <DESCRIPTION>Whether the generated java code is formatted nicelyor left to match NetRexx line numbers for call stack debuggin</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includes" REQUIRED="no">
+ <DESCRIPTION>comma- or space-separated list of patterns of files that must beincluded. All files are included when omitted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="includesfile" REQUIRED="no">
+ <DESCRIPTION>the name of a file. Each line of this file istaken to be an include patter</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="java" REQUIRED="no">
+ <DESCRIPTION>Whether the generated java code is produce</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="keep" REQUIRED="no">
+ <DESCRIPTION>Sets whether the generated java source file should be keptafter compilation. The generated files will have an extension of.java.keep, not .jav</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="logo" REQUIRED="no">
+ <DESCRIPTION>Whether the compiler text logo is displayed whencompilin</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="replace" REQUIRED="no">
+ <DESCRIPTION>Whether the generated .java file should be replacedwhen compilin</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="savelog" REQUIRED="no">
+ <DESCRIPTION>Whether the compiler messages will be written toNetRexxC.log as well as to the consol</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="sourcedir" REQUIRED="no">
+ <DESCRIPTION>Tells the NetRexx compiler to store the class files in thesame directory as the source files. The alternative is the workingdirector</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="srcdir" REQUIRED="yes">
+ <DESCRIPTION>Set the source dir to find the source NetRexxfile</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="strictargs" REQUIRED="no">
+ <DESCRIPTION>Tells the NetRexx compiler that method calls alwaysneed parentheses, even if no arguments are needed, e.g.aStringVar.getBytes vs.aStringVar.getBytes(</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="strictassign" REQUIRED="no">
+ <DESCRIPTION>Tells the NetRexx compile that assignments mustmatch exactly on typ</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="strictcase" REQUIRED="no">
+ <DESCRIPTION>Specifies whether the NetRexx compiler should becase sensitive or no</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="strictimport" REQUIRED="no">
+ <DESCRIPTION>Whether classes need to be imported explicitly using animport statement. By default the NetRexx compiler willimport certain packages automaticall</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="strictprops" REQUIRED="no">
+ <DESCRIPTION>Whether local properties need to be qualifiedexplicitly using thi</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="strictsignal" REQUIRED="no">
+ <DESCRIPTION>Whether the compiler should force catching ofexceptions by explicitly named type</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="symbols" REQUIRED="no">
+ <DESCRIPTION>Whether debug symbols should be generated into theclass fil</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="time" REQUIRED="no">
+ <DESCRIPTION>Asks the NetRexx compiler to print compilationtimes to the consol</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="trace" REQUIRED="no">
+ <DESCRIPTION>Turns on or off tracing and directs the resultanttrace outpu</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="utf8" REQUIRED="no">
+ <DESCRIPTION>Tells the NetRexx compiler that the source is in UTF</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="verbose" REQUIRED="no">
+ <DESCRIPTION>Whether lots of warnings and error messages shouldbe generate</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="suppressmethodargumentnotused" REQUIRED="no">
+ <DESCRIPTION>Tells whether we should filter out the&amp;Method argument not used&amp; messages in strictargs mode</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="suppressprivatepropertynotused" REQUIRED="no">
+ <DESCRIPTION>Tells whether we should filter out the&amp;Private Property defined, but not used&amp; messages in strictargs mode</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="suppressvariablenotused" REQUIRED="no">
+ <DESCRIPTION>Tells whether we should filter out the&amp;Variable set but not used&amp; messages in strictargs mode.Please be careful with this one, as you can hide errors behind it</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="suppressexceptionnotsignalled" REQUIRED="no">
+ <DESCRIPTION>Tells whether we should filter out the&amp;Exception is declared, but not signalled within the method&amp;messages in strictsignal mode</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="suppressdeprecation" REQUIRED="no">
+ <DESCRIPTION>Tells wether we should filter out any deprecation-messagesof the compiler out</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="pvcs">
+ <DESCRIPTION>The pvcs task is set to point at a PVCS repository and optionally a project
+within that repository, and can from that specification get the latest
+version of the files contained by the repository.
+</DESCRIPTION>
+ <ATTRIBUTE NAME="repository" REQUIRED="yes">
+ <DESCRIPTION>The location of the repository (see your PVCSmanuals</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="pvcsproject" REQUIRED="no">
+ <DESCRIPTION>The project within the PVCS repository to extractfiles from (&quot;/&quot; is root project and that is default if this attribute isn'tspecified</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="label" REQUIRED="no">
+ <DESCRIPTION>Only files marked with this label are extracted</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="promotiongroup" REQUIRED="no">
+ <DESCRIPTION>Only files within this promotion group are extracted. Usingboth the label and the promotiongroup tag will cause the files in thepromotion group and with that label to be extracted.</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="force" REQUIRED="no">
+ <DESCRIPTION>If set to yes all files that exists and are writable are overwritten. Default no causes the files that are writable to be ignored. This stops the PVCS command get to stop asking questions</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="workspace" REQUIRED="no">
+ <DESCRIPTION>By specifying a workspace, the files are extracted to that location. A PVCS workspace is aname for a location of the workfiles and isn't as such the location itself. You define the location for a workspaceusing the PVCS GUI clients. If this isn't specified the default workspace for the current user is used</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="pvcsbin" REQUIRED="no">
+ <DESCRIPTION>On some systems the PVCS executables pcliand get are not found in the PATH. In such cases this attributeshould be set to the bin directory of the PVCS installation containingthe executables mentioned before. If this attribute isn't specified thetag expects the executables to be found using the PATH environment variable</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="ignorereturncode" REQUIRED="no">
+ <DESCRIPTION>If set to true the return value from executingthe pvcs commands are ignored</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="updateonly" REQUIRED="no">
+ <DESCRIPTION>If set to true files are gotten only ifnewer than existing local files</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="filenameformat" REQUIRED="no">
+ <DESCRIPTION>The format of your folder names in aformat suitable for java.text.MessageFormat.Defaults to {0}-arc({1}). Repositories wherethe archive extension is not -arc should setthis</DESCRIPTION>
+ </ATTRIBUTE>
+
+ <ATTRIBUTE NAME="linestart" REQUIRED="no">
+ <DESCRIPTION>Used to parse the output of the pclicommand. It defaults to &quot;P:. The parser alreadyknows about / and \\, this property is useful in cases where therepository is accessed on a Windows platform via a drive lettermapping</DESCRIPTION>
+ </ATTRIBUTE>
+ </TASK>
+ <TASK NAME="renameextensions">
+ <DESCRIPTION>&lt;p&gt;Renames files in the &lt;code&gt;srcDir&lt;/code&gt; directory ending with the
+&lt;code&gt;fromExtension&lt;/code&gt; string so that they end with the
+&lt;code&gt;toExtension&lt;/code&gt; string. Files are only replaced if
+&lt;code&gt;replace&lt;/code&gt; is true
+&lt;/p&gt;
+&lt;p&gt;See the section on
+&lt;a href=&quot;../dirtasks.html#directorybasedtasks&quot;&gt;directory based tasks&lt;/a&gt;, on how the
+inclusion/exclusion of files works, and how to write patterns.
+This task forms an implicit &lt;a href=&quot;../CoreTypes/fileset.html&quot;&gt;FileSet&lt;/a&gt; and
+supports all attributes of &lt;code&gt;&amp;lt;fileset&amp;gt;&lt;/code&gt;
+(&lt;code&gt;dir&lt;/code&gt; becomes &lt;code&gt;srcDir&lt;/code&gt;) as well as the nested
+&lt;code&gt;&amp;lt;include&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;exclude&amp;gt;&lt;/code&gt; and