aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2011-08-22 11:05:25 -0700
committerAndroid Code Review <code-review@android.com>2011-08-22 11:05:25 -0700
commit3bf8ed5b35d7e4b905bf372b73f0f6ef7b88cbaa (patch)
treea75680d885873a71c592b91ff75f3ba9c524a0bb
parent20c7f35a4a5c359750f6d477e5c3f8065f6a9ead (diff)
parent4b85f4ea69e9f7098abcae6e813cb85824c0de58 (diff)
downloadsdk-3bf8ed5b35d7e4b905bf372b73f0f6ef7b88cbaa.zip
sdk-3bf8ed5b35d7e4b905bf372b73f0f6ef7b88cbaa.tar.gz
sdk-3bf8ed5b35d7e4b905bf372b73f0f6ef7b88cbaa.tar.bz2
Merge "Move the project conversion of bin location from callback to build."
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java25
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/BaseProjectHelper.java7
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java40
3 files changed, 26 insertions, 46 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java
index 630a83b..34fd53d 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java
@@ -33,6 +33,7 @@ import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
@@ -211,8 +212,30 @@ public class ResourceManagerBuilder extends BaseBuilder {
project.refreshLocal(IResource.DEPTH_INFINITE, new SubProgressMonitor(monitor, 10));
}
- // check that we have bin/res/
+ // convert older projects which use bin as the eclipse output folder into projects
+ // using bin/classes
IFolder androidOutput = BaseProjectHelper.getAndroidOutputFolder(project);
+ IFolder javaOutput = BaseProjectHelper.getJavaOutputFolder(project);
+ if (androidOutput.exists() == false || javaOutput == null ||
+ javaOutput.getParent().equals(androidOutput) == false) {
+ // get what we want as the new java output.
+ IFolder newJavaOutput = androidOutput.getFolder(SdkConstants.FD_CLASSES_OUTPUT);
+
+ if (androidOutput.exists() == false) {
+ androidOutput.create(true /*force*/, true /*local*/, monitor);
+ }
+
+ if (newJavaOutput.exists() == false) {
+ newJavaOutput.create(true /*force*/, true /*local*/, monitor);
+ }
+
+ // set the java output to this project.
+ javaProject.setOutputLocation(newJavaOutput.getFullPath(), monitor);
+
+ project.build(IncrementalProjectBuilder.CLEAN_BUILD, monitor);
+ }
+
+ // check that we have bin/res/
IFolder binResFolder = androidOutput.getFolder(SdkConstants.FD_RESOURCES);
if (binResFolder.exists() == false) {
binResFolder.create(true /* force */, true /* local */,
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/BaseProjectHelper.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/BaseProjectHelper.java
index b1a4725..6266ea6 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/BaseProjectHelper.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/BaseProjectHelper.java
@@ -473,11 +473,8 @@ public final class BaseProjectHelper {
IJavaProject javaProject = JavaCore.create(project);
IPath path = javaProject.getOutputLocation();
- IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
- IResource outputResource = wsRoot.findMember(path);
- if (outputResource != null && outputResource.getType() == IResource.FOLDER) {
- return (IFolder)outputResource;
- }
+ path = path.removeFirstSegments(1);
+ return project.getFolder(path);
}
} catch (JavaModelException e) {
// Let's do nothing and return null
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
index d7c7099..4d11bc9 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
@@ -44,7 +44,6 @@ import com.android.sdklib.internal.project.ProjectPropertiesWorkingCopy;
import com.android.sdklib.internal.project.ProjectProperties.PropertyType;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IMarkerDelta;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResourceDelta;
@@ -860,45 +859,6 @@ public final class Sdk {
// of which can happen here since we're processing a Project opened event.
}
- // convert older projects which use bin as the eclipse output folder into projects
- // using bin/classes
- final IFolder androidOutput = BaseProjectHelper.getAndroidOutputFolder(openedProject);
- final IFolder javaOutput = BaseProjectHelper.getJavaOutputFolder(openedProject);
- if (androidOutput.exists() == false ||
- javaOutput.getParent().equals(androidOutput) == false) {
- // get what we want as the new java output.
- final IFolder newJavaOutput = androidOutput.getFolder(
- SdkConstants.FD_CLASSES_OUTPUT);
-
- // start a job to do resource change (which can't be done in that callback.)
- Job job = new Job("Project bin convertion") {
- @Override
- protected IStatus run(IProgressMonitor monitor) {
- try {
- if (androidOutput.exists() == false) {
- androidOutput.create(true /*force*/, true /*local*/, monitor);
- }
-
- if (newJavaOutput.exists() == false) {
- newJavaOutput.create(true /*force*/, true /*local*/, monitor);
- }
-
- // set the java output to this project.
- IJavaProject javaProject = JavaCore.create(openedProject);
- javaProject.setOutputLocation(newJavaOutput.getFullPath(), monitor);
-
- openedProject.build(IncrementalProjectBuilder.CLEAN_BUILD, monitor);
- } catch (CoreException e) {
- return e.getStatus();
- }
-
- return Status.OK_STATUS;
- }
- };
- job.setPriority(Job.BUILD); // build jobs are run after other interactive jobs
- job.schedule();
- }
-
ProjectState openedState = getProjectState(openedProject);
if (openedState != null) {