Lines 23-28
Link Here
|
23 |
import org.eclipse.core.runtime.Path; |
23 |
import org.eclipse.core.runtime.Path; |
24 |
import org.eclipse.core.runtime.preferences.IEclipsePreferences; |
24 |
import org.eclipse.core.runtime.preferences.IEclipsePreferences; |
25 |
import org.eclipse.jdt.core.*; |
25 |
import org.eclipse.jdt.core.*; |
|
|
26 |
import org.eclipse.jdt.core.tests.model.ClasspathInitializerTests.DefaultContainerInitializer; |
26 |
import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; |
27 |
import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; |
27 |
import org.eclipse.jdt.internal.core.JavaModelManager; |
28 |
import org.eclipse.jdt.internal.core.JavaModelManager; |
28 |
import org.eclipse.jdt.internal.core.UserLibrary; |
29 |
import org.eclipse.jdt.internal.core.UserLibrary; |
Lines 1069-1074
Link Here
|
1069 |
deleteProjects(new String[] {"P1", "P2"}); |
1070 |
deleteProjects(new String[] {"P1", "P2"}); |
1070 |
} |
1071 |
} |
1071 |
} |
1072 |
} |
|
|
1073 |
|
1074 |
/* |
1075 |
* Ensures that importing a project correctly update the project references |
1076 |
* (regression test for bug 172666 Importing pde.ui and dependencies as binary gives compile error) |
1077 |
*/ |
1078 |
public void testProjectImport2() throws CoreException { |
1079 |
IResourceChangeListener resourceChangeListener = new IResourceChangeListener() { |
1080 |
public void resourceChanged(IResourceChangeEvent event) { |
1081 |
try { |
1082 |
ContainerInitializer.initializer.initialize(new Path("org.eclipse.jdt.core.tests.model.TEST_CONTAINER"), getJavaProject("P2")); |
1083 |
} catch (CoreException e) { |
1084 |
e.printStackTrace(); |
1085 |
} |
1086 |
} |
1087 |
|
1088 |
}; |
1089 |
try { |
1090 |
createJavaProject("P1"); |
1091 |
createFile("/P1/lib.jar", ""); |
1092 |
IWorkspaceRunnable runnable = new IWorkspaceRunnable() { |
1093 |
public void run(IProgressMonitor monitor) throws CoreException { |
1094 |
createProject("P2"); |
1095 |
createFile( |
1096 |
"/P2/.classpath", |
1097 |
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + |
1098 |
"<classpath>\n" + |
1099 |
" <classpathentry kind=\"con\" path=\"org.eclipse.jdt.core.tests.model.TEST_CONTAINER\"/>\n" + |
1100 |
"</classpath>" |
1101 |
); |
1102 |
ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P2", "/P1/lib.jar"})); |
1103 |
getWorkspace().checkpoint(false/*don't build*/); |
1104 |
editFile( |
1105 |
"/P2/.project", |
1106 |
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + |
1107 |
"<projectDescription>\n" + |
1108 |
" <name>P2</name>\n" + |
1109 |
" <comment></comment>\n" + |
1110 |
" <projects>\n" + |
1111 |
" </projects>\n" + |
1112 |
" <buildSpec>\n" + |
1113 |
" <buildCommand>\n" + |
1114 |
" <name>org.eclipse.jdt.core.javabuilder</name>\n" + |
1115 |
" <arguments>\n" + |
1116 |
" </arguments>\n" + |
1117 |
" </buildCommand>\n" + |
1118 |
" </buildSpec>\n" + |
1119 |
" <natures>\n" + |
1120 |
" <nature>org.eclipse.jdt.core.javanature</nature>\n" + |
1121 |
" </natures>\n" + |
1122 |
"</projectDescription>" |
1123 |
); |
1124 |
ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P2", "/P1"})); |
1125 |
} |
1126 |
}; |
1127 |
JavaCore.addPreProcessingResourceChangedListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE); |
1128 |
getWorkspace().run(runnable, null); |
1129 |
waitForAutoBuild(); |
1130 |
IProject[] referencedProjects = getProject("P2").getReferencedProjects(); |
1131 |
assertResourcesEqual( |
1132 |
"Unexpected project references", |
1133 |
"/P1", |
1134 |
referencedProjects); |
1135 |
} finally { |
1136 |
JavaCore.removePreProcessingResourceChangedListener(resourceChangeListener); |
1137 |
deleteProjects(new String[] {"P1", "P2"}); |
1138 |
} |
1139 |
} |
1140 |
|
1141 |
/* |
1142 |
* Ensures that importing a project correctly update the project references |
1143 |
* (regression test for bug 172666 Importing pde.ui and dependencies as binary gives compile error) |
1144 |
*/ |
1145 |
public void testProjectImport3() throws CoreException { |
1146 |
IResourceChangeListener resourceChangeListener = new IResourceChangeListener() { |
1147 |
public void resourceChanged(IResourceChangeEvent event) { |
1148 |
try { |
1149 |
ContainerInitializer.initializer.initialize(new Path("org.eclipse.jdt.core.tests.model.TEST_CONTAINER"), getJavaProject("P2")); |
1150 |
} catch (CoreException e) { |
1151 |
e.printStackTrace(); |
1152 |
} |
1153 |
} |
1154 |
|
1155 |
}; |
1156 |
try { |
1157 |
createJavaProject("P1"); |
1158 |
createFile("/P1/lib.jar", ""); |
1159 |
createProject("P2"); |
1160 |
createFile( |
1161 |
"/P2/.classpath", |
1162 |
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + |
1163 |
"<classpath>\n" + |
1164 |
" <classpathentry kind=\"con\" path=\"org.eclipse.jdt.core.tests.model.TEST_CONTAINER\"/>\n" + |
1165 |
"</classpath>" |
1166 |
); |
1167 |
ContainerInitializer.setInitializer(new DefaultContainerInitializer(new String[] {"P2", "/P1"})); |
1168 |
JavaCore.addPreProcessingResourceChangedListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE); |
1169 |
editFile( |
1170 |
"/P2/.project", |
1171 |
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + |
1172 |
"<projectDescription>\n" + |
1173 |
" <name>P2</name>\n" + |
1174 |
" <comment></comment>\n" + |
1175 |
" <projects>\n" + |
1176 |
" </projects>\n" + |
1177 |
" <buildSpec>\n" + |
1178 |
" <buildCommand>\n" + |
1179 |
" <name>org.eclipse.jdt.core.javabuilder</name>\n" + |
1180 |
" <arguments>\n" + |
1181 |
" </arguments>\n" + |
1182 |
" </buildCommand>\n" + |
1183 |
" </buildSpec>\n" + |
1184 |
" <natures>\n" + |
1185 |
" <nature>org.eclipse.jdt.core.javanature</nature>\n" + |
1186 |
" </natures>\n" + |
1187 |
"</projectDescription>" |
1188 |
); |
1189 |
waitForAutoBuild(); |
1190 |
IProject[] referencedProjects = getProject("P2").getReferencedProjects(); |
1191 |
assertResourcesEqual( |
1192 |
"Unexpected project references", |
1193 |
"/P1", |
1194 |
referencedProjects); |
1195 |
} finally { |
1196 |
JavaCore.removePreProcessingResourceChangedListener(resourceChangeListener); |
1197 |
deleteProjects(new String[] {"P1", "P2"}); |
1198 |
} |
1199 |
} |
1200 |
|
1072 |
/** |
1201 |
/** |
1073 |
* Test that the correct package fragments exist in the project. |
1202 |
* Test that the correct package fragments exist in the project. |
1074 |
*/ |
1203 |
*/ |