diff --git a/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryCompositionSettings.java b/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryCompositionSettings.java index f58e9f275db8..b9dd0cb330a5 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryCompositionSettings.java +++ b/java/idea-ui/src/com/intellij/facet/impl/ui/libraries/LibraryCompositionSettings.java @@ -18,6 +18,9 @@ package com.intellij.facet.impl.ui.libraries; import com.intellij.framework.library.FrameworkLibraryVersion; import com.intellij.framework.library.FrameworkLibraryVersionFilter; import com.intellij.openapi.Disposable; +import com.intellij.openapi.roots.DependencyScope; +import com.intellij.openapi.roots.LibraryDependencyScopeSuggester; +import com.intellij.openapi.roots.LibraryOrderEntry; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.ui.configuration.libraries.CustomLibraryDescription; @@ -183,13 +186,19 @@ public class LibraryCompositionSettings implements Disposable { if (library != null) { addedLibraries.add(library); + DependencyScope scope = LibraryDependencyScopeSuggester.getDefaultScope(library); if (getLibraryLevel() != LibrariesContainer.LibraryLevel.MODULE) { - rootModel.addLibraryEntry(library); + rootModel.addLibraryEntry(library).setScope(scope); + } + else { + LibraryOrderEntry orderEntry = rootModel.findLibraryOrderEntry(library); + assert orderEntry != null; + orderEntry.setScope(scope); } } if (mySelectedLibrary != null) { addedLibraries.add(mySelectedLibrary); - rootModel.addLibraryEntry(mySelectedLibrary); + rootModel.addLibraryEntry(mySelectedLibrary).setScope(LibraryDependencyScopeSuggester.getDefaultScope(mySelectedLibrary)); } return library; } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/AddLibraryDependencyAction.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/AddLibraryDependencyAction.java index 045609bfecd6..f280814af4af 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/AddLibraryDependencyAction.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/classpath/AddLibraryDependencyAction.java @@ -112,24 +112,10 @@ class AddLibraryDependencyAction extends AddItemPopupAction { } } final LibraryOrderEntry orderEntry = rootModel.addLibraryEntry(item); - DependencyScope defaultScope = getDefaultScope(item); - if (defaultScope != null) { - orderEntry.setScope(defaultScope); - } + orderEntry.setScope(LibraryDependencyScopeSuggester.getDefaultScope(item)); return ClasspathTableItem.createLibItem(orderEntry, myContext); } - @Nullable - private static DependencyScope getDefaultScope(Library item) { - for (LibraryDependencyScopeSuggester suggester : LibraryDependencyScopeSuggester.EP_NAME.getExtensions()) { - DependencyScope scope = suggester.getDefaultDependencyScope(item); - if (scope != null) { - return scope; - } - } - return null; - } - @Override protected ClasspathElementChooser createChooser() { return new ExistingLibraryChooser(); diff --git a/java/java-impl/src/com/intellij/openapi/roots/LibraryDependencyScopeSuggester.java b/java/java-impl/src/com/intellij/openapi/roots/LibraryDependencyScopeSuggester.java index 1cc0795255d9..66075d9332c3 100644 --- a/java/java-impl/src/com/intellij/openapi/roots/LibraryDependencyScopeSuggester.java +++ b/java/java-impl/src/com/intellij/openapi/roots/LibraryDependencyScopeSuggester.java @@ -28,4 +28,15 @@ public abstract class LibraryDependencyScopeSuggester { @Nullable public abstract DependencyScope getDefaultDependencyScope(@NotNull Library library); + + @NotNull + public static DependencyScope getDefaultScope(@NotNull Library library) { + for (LibraryDependencyScopeSuggester suggester : EP_NAME.getExtensions()) { + DependencyScope scope = suggester.getDefaultDependencyScope(library); + if (scope != null) { + return scope; + } + } + return DependencyScope.COMPILE; + } }