aboutsummaryrefslogtreecommitdiffstats
path: root/eclipse
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-03-01 17:06:48 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-03-01 17:06:48 -0800
commit84136806d31ef98df5f0ce2360c73e6818ef8d73 (patch)
treeab024a58b5407092ebc6c8b95eda64b5b1271d06 /eclipse
parent33c16676b738dfa433c267578ce37a93710cef7a (diff)
parentfabbec5e8c5f7a052e337972f963cb3163243c36 (diff)
downloadsdk-84136806d31ef98df5f0ce2360c73e6818ef8d73.zip
sdk-84136806d31ef98df5f0ce2360c73e6818ef8d73.tar.gz
sdk-84136806d31ef98df5f0ce2360c73e6818ef8d73.tar.bz2
Merge changes I9f8bbb10,I8fc53e0f
* changes: Java project dependencies on libs are automatically added to main project. Move Android project with Java project dep test to its own folder.
Diffstat (limited to 'eclipse')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/BuildHelper.java7
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java33
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/LibraryClasspathContainerInitializer.java31
3 files changed, 42 insertions, 29 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/BuildHelper.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/BuildHelper.java
index 7536c2f..ef3a7ac 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/BuildHelper.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/BuildHelper.java
@@ -19,7 +19,6 @@ package com.android.ide.eclipse.adt.internal.build;
import com.android.ide.eclipse.adt.AdtConstants;
import com.android.ide.eclipse.adt.AdtPlugin;
import com.android.ide.eclipse.adt.AndroidPrintStream;
-import com.android.ide.eclipse.adt.internal.build.BuildHelper.ResourceMarker;
import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs;
import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs.BuildVerbosity;
import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper;
@@ -747,6 +746,12 @@ public class BuildHelper {
mOutStream.setPrefix(CONSOLE_PREFIX_DX);
mErrStream.setPrefix(CONSOLE_PREFIX_DX);
+ if (mVerbose) {
+ for (String input : inputPaths) {
+ mOutStream.println("Input: " + input);
+ }
+ }
+
int res = wrapper.run(osOutFilePath,
inputPaths,
mVerbose,
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java
index d65dedf..cdee0aa 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java
@@ -445,11 +445,9 @@ public class PostCompilerBuilder extends BaseBuilder {
IFolder javaOutputFolder = BaseProjectHelper.getJavaOutputFolder(project);
- writeLibraryPackage(jarIFile, project, appPackage, javaOutputFolder,
- referencedJavaProjects);
+ writeLibraryPackage(jarIFile, project, appPackage, javaOutputFolder);
saveProjectBooleanProperty(PROPERTY_CONVERT_TO_DEX, mConvertToDex = false);
-
// refresh the bin folder content with no recursion to update the library
// jar file.
androidOutputFolder.refreshLocal(IResource.DEPTH_ONE, monitor);
@@ -900,8 +898,15 @@ public class PostCompilerBuilder extends BaseBuilder {
return true;
}
+ /**
+ * Writes the library jar file.
+ * @param jarIFile the destination file
+ * @param project the library project
+ * @param appPackage the library android package
+ * @param javaOutputFolder the JDT output folder.
+ */
private void writeLibraryPackage(IFile jarIFile, IProject project, String appPackage,
- IFolder javaOutputFolder, List<IJavaProject> referencedJavaProjects) {
+ IFolder javaOutputFolder) {
JarOutputStream jos = null;
try {
@@ -920,26 +925,6 @@ public class PostCompilerBuilder extends BaseBuilder {
// now write the standard Java resources
BuildHelper.writeResources(jarBuilder, JavaCore.create(project));
- // do the same for all the referencedJava project
- for (IJavaProject javaProject : referencedJavaProjects) {
- // in case an Android project was referenced (which won't work), the
- // best thing is to ignore this project.
- if (javaProject.getProject().hasNature(AdtConstants.NATURE_DEFAULT)) {
- continue;
- }
-
- IFolder refProjectOutput = BaseProjectHelper.getJavaOutputFolder(
- javaProject.getProject());
-
- if (refProjectOutput != null) {
- // write the class files
- writeClassFilesIntoJar(jarBuilder, refProjectOutput, refProjectOutput);
-
- // now write the standard Java resources
- BuildHelper.writeResources(jarBuilder, javaProject);
- }
- }
-
saveProjectBooleanProperty(PROPERTY_CONVERT_TO_DEX, mConvertToDex);
} catch (Exception e) {
AdtPlugin.log(e, "Failed to write jar file %s", jarIFile.getLocation().toOSString());
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/LibraryClasspathContainerInitializer.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/LibraryClasspathContainerInitializer.java
index 7b6c9b7..d012bc8 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/LibraryClasspathContainerInitializer.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/project/LibraryClasspathContainerInitializer.java
@@ -40,6 +40,8 @@ import org.eclipse.jdt.core.JavaModelException;
import java.io.File;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
public class LibraryClasspathContainerInitializer extends ClasspathContainerInitializer {
@@ -60,7 +62,7 @@ public class LibraryClasspathContainerInitializer extends ClasspathContainerInit
IClasspathContainer[] containers = new IClasspathContainer[projectCount];
for (int i = 0 ; i < projectCount; i++) {
- containers[i] = allocateAndroidContainer(androidProjects[i]);
+ containers[i] = allocateLibraryContainer(androidProjects[i]);
}
// give each project their new container in one call.
@@ -97,7 +99,7 @@ public class LibraryClasspathContainerInitializer extends ClasspathContainerInit
@Override
public void initialize(IPath containerPath, IJavaProject project) throws CoreException {
if (AdtConstants.CONTAINER_LIBRARIES.equals(containerPath.toString())) {
- IClasspathContainer container = allocateAndroidContainer(project);
+ IClasspathContainer container = allocateLibraryContainer(project);
if (container != null) {
JavaCore.setClasspathContainer(new Path(AdtConstants.CONTAINER_LIBRARIES),
new IJavaProject[] { project },
@@ -107,7 +109,7 @@ public class LibraryClasspathContainerInitializer extends ClasspathContainerInit
}
}
- private static IClasspathContainer allocateAndroidContainer(IJavaProject javaProject) {
+ private static IClasspathContainer allocateLibraryContainer(IJavaProject javaProject) {
final IProject iProject = javaProject.getProject();
AdtPlugin plugin = AdtPlugin.getDefault();
@@ -158,6 +160,8 @@ public class LibraryClasspathContainerInitializer extends ClasspathContainerInit
IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+ HashSet<IProject> refProjects = new HashSet<IProject>();
+
List<IProject> libProjects = state.getFullLibraryProjects();
for (IProject libProject : libProjects) {
// get the project output
@@ -186,6 +190,25 @@ public class LibraryClasspathContainerInitializer extends ClasspathContainerInit
entries.add(entry);
}
+
+ // get project dependencies
+ try {
+ IProject[] refs = libProject.getReferencedProjects();
+ refProjects.addAll(Arrays.asList(refs));
+ } catch (CoreException e) {
+ }
+ }
+
+ for (IProject p : refProjects) {
+ // ignore if it's an Android project, or if it's not a Java Project
+ try {
+ if (p.hasNature(JavaCore.NATURE_ID) &&
+ p.hasNature(AdtConstants.NATURE_DEFAULT) == false) {
+ entries.add(JavaCore.newProjectEntry(p.getFullPath()));
+ }
+ } catch (CoreException e) {
+ // can't get the nature? ignore the project.
+ }
}
// annotations support for older version of android
@@ -205,7 +228,7 @@ public class LibraryClasspathContainerInitializer extends ClasspathContainerInit
return new AndroidClasspathContainer(
entries.toArray(new IClasspathEntry[entries.size()]),
new Path(AdtConstants.CONTAINER_LIBRARIES),
- "Library Projects",
+ "Android Dependencies",
IClasspathContainer.K_APPLICATION);
}