Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/WorkspaceExtensionsModel.java24
1 files changed, 21 insertions, 3 deletions
diff --git a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/WorkspaceExtensionsModel.java b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/WorkspaceExtensionsModel.java
index 0022af472a..4150ec78f1 100644
--- a/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/WorkspaceExtensionsModel.java
+++ b/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/plugin/WorkspaceExtensionsModel.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2012 IBM Corporation and others.
+ * Copyright (c) 2000, 2014 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
@@ -8,21 +8,24 @@
* Contributors:
* IBM Corporation - initial API and implementation
* EclipseSource Corporation - ongoing enhancements
+ * Simon Scholz <simon.scholz@vogella.com> - Bug 452487
*******************************************************************************/
package org.eclipse.pde.internal.core.plugin;
import java.io.*;
import java.net.MalformedURLException;
import java.net.URL;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.*;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.pde.core.IEditableModel;
import org.eclipse.pde.core.IModelChangedEvent;
+import org.eclipse.pde.core.build.IBuildEntry;
import org.eclipse.pde.internal.core.*;
+import org.eclipse.pde.internal.core.build.WorkspaceBuildModel;
import org.eclipse.pde.internal.core.ibundle.IBundlePluginModelBase;
import org.eclipse.pde.internal.core.ibundle.IBundlePluginModelProvider;
+import org.eclipse.pde.internal.core.project.PDEProject;
import org.osgi.framework.Constants;
public class WorkspaceExtensionsModel extends AbstractExtensionsModel implements IEditableModel, IBundlePluginModelProvider {
@@ -112,6 +115,7 @@ public class WorkspaceExtensionsModel extends AbstractExtensionsModel implements
fUnderlyingResource.setContents(stream, false, false, null);
} else {
fUnderlyingResource.create(stream, false, null);
+ adjustBuildPropertiesFile(fUnderlyingResource);
}
} catch (CoreException e) {
PDECore.logException(e);
@@ -127,6 +131,20 @@ public class WorkspaceExtensionsModel extends AbstractExtensionsModel implements
}
}
+ private void adjustBuildPropertiesFile(IFile underlyingResource) throws CoreException {
+ IProject project = underlyingResource.getProject();
+ IFile buildPropertiesFile = PDEProject.getBuildProperties(project);
+ if (buildPropertiesFile.exists()) {
+ WorkspaceBuildModel model = new WorkspaceBuildModel(buildPropertiesFile);
+ IBuildEntry entry = model.getBuild().getEntry(IBuildEntry.BIN_INCLUDES);
+ String relativePath = underlyingResource.getProjectRelativePath().toString();
+ if (!entry.contains(relativePath)) {
+ entry.addToken(relativePath);
+ model.save();
+ }
+ }
+ }
+
public void save(PrintWriter writer) {
if (isLoaded()) {
fExtensions.write("", writer); //$NON-NLS-1$

Back to the top