*** empty log message ***
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/JarImportOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/JarImportOperation.java index 746ea85..4f5fd6a 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/JarImportOperation.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/JarImportOperation.java
@@ -273,4 +273,38 @@ return true; } + protected String[] getTopLevelResources(File file) { + ArrayList result = new ArrayList(); + ZipFile zipFile = null; + try { + zipFile = new ZipFile(file); + ZipFileStructureProvider provider = new ZipFileStructureProvider(zipFile); + List children = provider.getChildren(provider.getRoot()); + if (children != null && !children.isEmpty()) { + for (int i = 0; i < children.size(); i++) { + Object curr = children.get(i); + if (provider.isFolder(curr)) { + if (!isClassFolder(provider, curr)) + result.add(provider.getLabel(curr) + "/"); + else { + if (!result.contains(".")) + result.add("."); + } + } else { + result.add(provider.getLabel(curr)); + } + } + } + } catch (IOException e) { + } finally { + if (zipFile != null) { + try { + zipFile.close(); + } catch (IOException e) { + } + } + } + return (String[])result.toArray(new String[result.size()]); + } + }
diff --git a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportOperation.java b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportOperation.java index 08e1a70..092fa4a 100644 --- a/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportOperation.java +++ b/ui/org.eclipse.pde.ui/src/org/eclipse/pde/internal/ui/wizards/imports/PluginImportOperation.java
@@ -299,9 +299,33 @@ } } } + configureBinIncludes(buildModel, model); buildModel.save(); } + private void configureBinIncludes(WorkspaceBuildModel buildModel, IPluginModelBase model) throws CoreException { + IBuildEntry entry = buildModel.getBuild(true).getEntry("bin.includes"); + if (entry == null) { + entry = buildModel.getFactory().createEntry("bin.includes"); + File location = new File(model.getInstallLocation()); + if (location.isDirectory()) { + File[] files = location.listFiles(); + for (int i = 0; i < files.length; i++) { + String token = files[i].getName(); + if (files[i].isDirectory()) + token = token + "/"; //$NON-NLS-1$ + entry.addToken(token); + } + } else { + String[] tokens = getTopLevelResources(location); + for (int i = 0; i < tokens.length; i++) { + entry.addToken(tokens[i]); + } + } + buildModel.getBuild().add(entry); + } + } + private String addBuildEntry(WorkspaceBuildModel model, String key, String value) throws CoreException { IBuild build = model.getBuild(true); IBuildEntry entry = build.getEntry(key);