*** 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);