Я использовал Eclipse 3.7 (Indigo) и имел плагин, который добавлял определенный каталог к активной целевой платформе.Динамически добавлять каталог в целевую платформу на Eclipse
ITargetPlatformService service = (ITargetPlatformService) PDECore.getDefault().acquireService(ITargetPlatformService.class.getName());
ITargetDefinition target = service.getWorkspaceTargetHandle().getTargetDefinition();
IBundleContainer[] bundles = target.getBundleContainers();
String myDirectory = "C:\\directory";
boolean containsMyDirectory = false;
for (IBundleContainer bundle : bundles) {
if (bundle.toString().contains(myDirectory.toString())) {
containsMyDirectory = true;
break;
}
}
if (!containsMyDirectory) {
bundles = Arrays.copyOf(bundles, bundles.length + 1);
bundles[bundles.length - 1] = service.newDirectoryContainer(myDirectory.toString());
target.setBundleContainers(bundles);
service.saveTargetDefinition(target);
LoadTargetDefinitionJob.load(target);
}
Но теперь, мы мигрируют в Eclipse, 4.4 (Luna) и код не компилируется больше, показывая следующее сообщение: Импорт org.eclipse.pde.internal.core.target.provisional не может быть решен
импорта, которые не могут быть решены, были:
import org.eclipse.pde.internal.core.target.provisional.IBundleContainer;
import org.eclipse.pde.internal.core.target.provisional.ITargetDefinition;
import org.eclipse.pde.internal.core.target.provisional.ITargetPlatformService;
import org.eclipse.pde.internal.core.target.provisional.LoadTargetDefinitionJob;
сосуд используется в Eclipse, 3.7 org.eclipse.pde.core_3.7.1.v20120103_r372.jar и в Eclipse, 4.4 является орг .eclipse.pde.core_3.10.0.v20140519-1409.jar
Я не мог найти классы, которые заменяют старые.
Кто-нибудь знает, что делать?
А как насчет методов ITargetDefinition.getBundleContainers() и ITargetPlatformService.newDirectoryContainer (String), которые больше не существуют? – hbelmiro
Извините, не знаю, вам, вероятно, придется взглянуть на старый источник и новый источник, чтобы увидеть, как они изменили предварительный API до конечного API. –