use of com.intellij.pom.java.LanguageLevel in project intellij-plugins by JetBrains.
the class BndProjectImporter method createProjectStructure.
private void createProjectStructure() {
if (myProject.isDisposed()) {
return;
}
ApplicationManager.getApplication().runWriteAction(() -> {
LanguageLevel projectLevel = LanguageLevelProjectExtension.getInstance(myProject).getLanguageLevel();
Map<Project, ModifiableRootModel> rootModels = ContainerUtil.newHashMap();
ModifiableModuleModel moduleModel = ModuleManager.getInstance(myProject).getModifiableModel();
LibraryTable.ModifiableModel libraryModel = ProjectLibraryTable.getInstance(myProject).getModifiableModel();
try {
for (Project project : myProjects) {
try {
rootModels.put(project, createModule(moduleModel, project, projectLevel));
} catch (Exception e) {
// should not happen, since project.prepare() is already called
LOG.error(e);
}
}
for (Project project : myProjects) {
try {
setDependencies(moduleModel, libraryModel, rootModels.get(project), project);
} catch (Exception e) {
// should not happen, since project.prepare() is already called
LOG.error(e);
}
}
} finally {
libraryModel.commit();
ModifiableModelCommitter.multiCommit(rootModels.values(), moduleModel);
}
});
}
use of com.intellij.pom.java.LanguageLevel in project android by JetBrains.
the class AndroidTestCase method setUp.
@Override
protected void setUp() throws Exception {
super.setUp();
TestFixtureBuilder<IdeaProjectTestFixture> projectBuilder = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName());
myFixture = JavaTestFixtureFactory.getFixtureFactory().createCodeInsightFixture(projectBuilder.getFixture());
JavaModuleFixtureBuilder moduleFixtureBuilder = projectBuilder.addModule(JavaModuleFixtureBuilder.class);
File moduleRoot = new File(myFixture.getTempDirPath());
if (!moduleRoot.exists()) {
assertTrue(moduleRoot.mkdirs());
}
initializeModuleFixtureBuilderWithSrcAndGen(moduleFixtureBuilder, moduleRoot.toString());
ArrayList<MyAdditionalModuleData> modules = new ArrayList<>();
configureAdditionalModules(projectBuilder, modules);
myFixture.setUp();
myFixture.setTestDataPath(getTestDataPath());
myModule = moduleFixtureBuilder.getFixture().getModule();
// Must be done before addAndroidFacet, and must always be done, even if a test provides
// its own custom manifest file. However, in that case, we will delete it shortly below.
createManifest();
myFacet = addAndroidFacet(myModule);
LanguageLevel languageLevel = getLanguageLevel();
if (languageLevel != null) {
LanguageLevelProjectExtension extension = LanguageLevelProjectExtension.getInstance(myModule.getProject());
if (extension != null) {
extension.setLanguageLevel(languageLevel);
}
}
myFixture.copyDirectoryToProject(getResDir(), "res");
myAdditionalModules = new ArrayList<>();
for (MyAdditionalModuleData data : modules) {
Module additionalModule = data.myModuleFixtureBuilder.getFixture().getModule();
myAdditionalModules.add(additionalModule);
AndroidFacet facet = addAndroidFacet(additionalModule);
facet.setProjectType(data.myProjectType);
String rootPath = getAdditionalModulePath(data.myDirName);
myFixture.copyDirectoryToProject(getResDir(), rootPath + "/res");
myFixture.copyFileToProject(SdkConstants.FN_ANDROID_MANIFEST_XML, rootPath + '/' + SdkConstants.FN_ANDROID_MANIFEST_XML);
if (data.myIsMainModuleDependency) {
ModuleRootModificationUtil.addDependency(myModule, additionalModule);
}
}
if (providesCustomManifest()) {
deleteManifest();
}
if (RenderSecurityManager.RESTRICT_READS) {
// Unit test class loader includes disk directories which security manager does not allow access to
RenderSecurityManager.sEnabled = false;
}
ArrayList<String> allowedRoots = new ArrayList<>();
collectAllowedRoots(allowedRoots);
registerAllowedRoots(allowedRoots, getTestRootDisposable());
mySettings = CodeStyleSettingsManager.getSettings(getProject()).clone();
AndroidCodeStyleSettingsModifier.modify(mySettings);
CodeStyleSettingsManager.getInstance(getProject()).setTemporarySettings(mySettings);
myUseCustomSettings = getAndroidCodeStyleSettings().USE_CUSTOM_SETTINGS;
getAndroidCodeStyleSettings().USE_CUSTOM_SETTINGS = true;
// Layoutlib rendering thread will be shutdown when the app is closed so do not report it as a leak
ThreadTracker.longRunningThreadCreated(ApplicationManager.getApplication(), "Layoutlib");
}
use of com.intellij.pom.java.LanguageLevel in project android by JetBrains.
the class PostProjectBuildTasksExecutor method getMaxJavaLangLevel.
@VisibleForTesting
@Nullable
LanguageLevel getMaxJavaLangLevel() {
LanguageLevel maxLangLevel = null;
Module[] modules = ModuleManager.getInstance(myProject).getModules();
for (Module module : modules) {
AndroidFacet facet = AndroidFacet.getInstance(module);
if (facet == null) {
continue;
}
AndroidModuleModel androidModel = AndroidModuleModel.get(facet);
if (androidModel != null) {
LanguageLevel langLevel = androidModel.getJavaLanguageLevel();
if (langLevel != null && (maxLangLevel == null || maxLangLevel.compareTo(langLevel) < 0)) {
maxLangLevel = langLevel;
}
}
}
return maxLangLevel;
}
use of com.intellij.pom.java.LanguageLevel in project android by JetBrains.
the class SdkModuleSetupStep method doSetUpModule.
@Override
protected void doSetUpModule(@NotNull Module module, @NotNull IdeModifiableModelsProvider ideModelsProvider, @NotNull AndroidModuleModel androidModel, @Nullable SyncAction.ModuleModels gradleModels, @Nullable ProgressIndicator indicator) {
File androidSdkHomePath = IdeSdks.getInstance().getAndroidSdkPath();
// Android SDK may be not configured in IntelliJ
if (androidSdkHomePath == null) {
assert !IdeInfo.getInstance().isAndroidStudio();
logAndroidSdkHomeNotFound();
return;
}
ModifiableRootModel moduleModel = ideModelsProvider.getModifiableRootModel(module);
LanguageLevel languageLevel = androidModel.getJavaLanguageLevel();
if (languageLevel != null) {
moduleModel.getModuleExtension(LanguageLevelModuleExtensionImpl.class).setLanguageLevel(languageLevel);
}
AndroidProject androidProject = androidModel.getAndroidProject();
String compileTarget = androidProject.getCompileTarget();
Sdk sdk = myAndroidSdks.findSuitableAndroidSdk(compileTarget);
if (sdk == null) {
sdk = myAndroidSdks.tryToCreate(androidSdkHomePath, compileTarget);
if (sdk == null) {
// If SDK was not created, this might be an add-on.
sdk = findMatchingSdkForAddon(androidProject);
}
}
if (sdk == null) {
showPlatformNotFoundError(module, compileTarget);
return;
}
moduleModel.setSdk(sdk);
String sdkPath = sdk.getHomePath();
if (sdkPath == null) {
sdkPath = "<path not set>";
}
getLog().info(String.format("Set Android SDK '%1$s' (%2$s) to module '%3$s'", sdk.getName(), sdkPath, module.getName()));
}
use of com.intellij.pom.java.LanguageLevel in project android by JetBrains.
the class JavaLanguageLevelModuleSetupStep method getMinimumLanguageLevelForAndroidModules.
@Nullable
private static LanguageLevel getMinimumLanguageLevelForAndroidModules(@NotNull IdeModifiableModelsProvider modelsProvider) {
Module[] modules = modelsProvider.getModules();
if (modules.length == 0) {
return null;
}
LanguageLevel result = null;
List<LanguageLevel> languageLevels = new ArrayList<>();
for (Module dependency : modules) {
LanguageLevel dependencyLanguageLevel = getLanguageLevelForAndroidModule(dependency, modelsProvider);
if (dependencyLanguageLevel != null) {
languageLevels.add(dependencyLanguageLevel);
}
}
for (LanguageLevel dependencyLanguageLevel : languageLevels) {
if (result == null || result.compareTo(dependencyLanguageLevel) > 0) {
result = dependencyLanguageLevel;
}
}
return result;
}
Aggregations