Wnoszenie czynności i typów

Jeśli moduł dodatkowy udostępnia czynności i typy Ant, mają one dostęp do wszystkich jego klas. Na przykład czynność eclipse.refreshLocal udostępniona przez moduł dodatkowy org.eclipse.core.resources jest opakowaniem metody IResource.refreshLocal().

Czynności i typy udostępniane przez moduł dodatkowy nie mogą być umieszczane w żadnej z jego bibliotek. Muszą się znajdować w oddzielnym pliku JAR. Oznacza to, że klasy modułu dodatkowego nie mają dostępu do oferowanych przez niego czynności i typów. Więcej informacji na ten temat zawiera sekcja Po co oddzielny plik JAR dla czynności i typów?

W opisie punktu rozszerzenia org.eclipse.ant.core.antTasks udostępniono przykład określania nowej czynności w pliku plugin.xml.

Monitory postępu

Obsługa narzędzia Ant na platformie Eclipse umożliwia dostęp do interfejsu IProgressMonitor, o ile został on przekazany w trakcie wywoływania klasy AntRunner. Jedną z zalet dostępu do monitora postępu jest możliwość sprawdzenia przez długo działające czynności, czy użytkownik zażądał ich anulowania. Obiekt monitora postępu jest pobierany z odwołań projektu Ant. Należy pamiętać, że obiekt monitora będzie dostępny tylko wtedy, gdy metoda AntRunner.run(IProgressMonitor) zostanie wywołana przez poprawny monitor postępu. Poniższy fragment kodu pokazuje, w jaki sposób pobrać monitor postępu z projektu czynności:

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.eclipse.ant.core.AntCorePlugin;
import org.eclipse.core.runtime.IProgressMonitor;

public class CoolTask extends Task {

public void execute() throws BuildException {
	IProgressMonitor monitor = 
		(IProgressMonitor) getProject().getReferences().get(AntCorePlugin.ECLIPSE_PROGRESS_MONITOR);
	if (monitor == null) {
		...
	} else {
		...
	}
}
}

Istotne uwagi dotyczące udostępniania czynności i typów

Poniższe punkty powinny stanowić listę kontrolną dla programistów modułów dodatkowych:

Po co oddzielny plik JAR dla czynności i typów?

Przy uruchamianiu narzędzia Ant na platformie Eclipse istotne są dwa podstawowe wymagania, które nie pasują do modelu modułów dodatkowych:

Program modułu dodatkowego ładujący klasy nie może mieć podczas pracy rozwijanych ścieżek klas, a moduły dodatkowe nie mogą zmieniać ich zależności. Oddzielny plik JAR skutecznie oddziela czynności i typy od mechanizmu ładowania klas modułu dodatkowego. Zadeklarowanie dodatkowych plików JAR przez moduł dodatkowy pozwala również na dodanie modułu udostępniającego do ścieżki klas narzędzia Ant.