diff options
author | Xavier Ducrohet <xav@android.com> | 2011-08-22 11:05:25 -0700 |
---|---|---|
committer | Android Code Review <code-review@android.com> | 2011-08-22 11:05:25 -0700 |
commit | 3bf8ed5b35d7e4b905bf372b73f0f6ef7b88cbaa (patch) | |
tree | a75680d885873a71c592b91ff75f3ba9c524a0bb | |
parent | 20c7f35a4a5c359750f6d477e5c3f8065f6a9ead (diff) | |
parent | 4b85f4ea69e9f7098abcae6e813cb85824c0de58 (diff) | |
download | sdk-3bf8ed5b35d7e4b905bf372b73f0f6ef7b88cbaa.zip sdk-3bf8ed5b35d7e4b905bf372b73f0f6ef7b88cbaa.tar.gz sdk-3bf8ed5b35d7e4b905bf372b73f0f6ef7b88cbaa.tar.bz2 |
Merge "Move the project conversion of bin location from callback to build."
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) { |