mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
ES: extract packaging modifiable models to java plugin IDEA-187832
GitOrigin-RevId: 67f8209b711806a587d041fd1adc9529ea002916
This commit is contained in:
committed by
intellij-monorepo-bot
parent
8dbc95f646
commit
9c5ffd4573
+3
-3
@@ -5,7 +5,7 @@ import com.intellij.execution.BeforeRunTask
|
||||
import com.intellij.execution.BeforeRunTaskProvider
|
||||
import com.intellij.execution.configurations.RunConfiguration
|
||||
import com.intellij.openapi.externalSystem.model.project.settings.ConfigurationData
|
||||
import com.intellij.openapi.externalSystem.project.ModifiableArtifactsProvider
|
||||
import com.intellij.openapi.externalSystem.project.PackagingModifiableModel
|
||||
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider
|
||||
import com.intellij.openapi.module.Module
|
||||
import com.intellij.openapi.module.ModuleManager
|
||||
@@ -25,14 +25,14 @@ import com.intellij.util.ObjectUtils.consumeIfCast
|
||||
class ArtifactsImporter: ConfigurationHandler {
|
||||
|
||||
override fun apply(project: Project, modelsProvider: IdeModifiableModelsProvider, configuration: ConfigurationData) {
|
||||
if (modelsProvider !is ModifiableArtifactsProvider) return
|
||||
val artifacts = configuration.find("ideArtifacts") as? List<*> ?: return
|
||||
|
||||
if (artifacts.isEmpty()) {
|
||||
return
|
||||
}
|
||||
|
||||
val modifiableModel = modelsProvider.modifiableArtifactModel
|
||||
val packagingModifiableModel = modelsProvider.getModifiableModel(PackagingModifiableModel::class.java)
|
||||
val modifiableModel = packagingModifiableModel.modifiableArtifactModel
|
||||
val postponedOps: MutableList<(ModifiableArtifactModel) -> Unit> = mutableListOf()
|
||||
|
||||
artifacts.forEach { value ->
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
<orderEntry type="module" module-name="intellij.platform.projectModel.impl" />
|
||||
<orderEntry type="library" name="JDOM" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.platform.util.ui" />
|
||||
<orderEntry type="module" module-name="intellij.platform.externalSystem" />
|
||||
</component>
|
||||
<component name="copyright">
|
||||
<Base>
|
||||
|
||||
+2
-1
@@ -1,11 +1,12 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.openapi.externalSystem.project;
|
||||
|
||||
import com.intellij.openapi.externalSystem.service.project.ModifiableModel;
|
||||
import com.intellij.packaging.artifacts.ModifiableArtifactModel;
|
||||
import com.intellij.packaging.elements.PackagingElementResolvingContext;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public interface ModifiableArtifactsProvider {
|
||||
public interface PackagingModifiableModel extends ModifiableModel {
|
||||
@NotNull
|
||||
ModifiableArtifactModel getModifiableArtifactModel();
|
||||
|
||||
@@ -161,5 +161,10 @@
|
||||
<action id="ConsoleView.FoldLinesLikeThis" class="com.intellij.execution.console.FoldLinesLikeThis" text="Fold Lines Like This">
|
||||
<add-to-group group-id="ConsoleEditorPopupMenu" anchor="after" relative-to-action="$SearchWeb"/>
|
||||
</action>
|
||||
|
||||
<action id="ExternalSystem.AttachProject"
|
||||
class="com.intellij.openapi.externalSystem.action.AttachExternalProjectAction">
|
||||
<add-to-group group-id="ExternalSystemView.ActionsToolbar.LeftPanel" anchor="after" relative-to-action="ExternalSystem.RefreshAllProjects"/>
|
||||
</action>
|
||||
</actions>
|
||||
</idea-plugin>
|
||||
|
||||
@@ -16,5 +16,7 @@
|
||||
<orderEntry type="module" module-name="intellij.platform.vcs.impl" />
|
||||
<orderEntry type="library" name="Guava" level="project" />
|
||||
<orderEntry type="library" name="jna" level="project" />
|
||||
<orderEntry type="module" module-name="intellij.platform.externalSystem" />
|
||||
<orderEntry type="module" module-name="intellij.platform.externalSystem.impl" />
|
||||
</component>
|
||||
</module>
|
||||
+3
-17
@@ -1,25 +1,12 @@
|
||||
/*
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.openapi.externalSystem.service.project.manage;
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.openapi.externalSystem.service.project;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.externalSystem.ExternalSystemManager;
|
||||
import com.intellij.openapi.externalSystem.ExternalSystemModulePropertyManager;
|
||||
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
|
||||
import com.intellij.openapi.externalSystem.service.project.manage.ExternalProjectsManagerImpl;
|
||||
import com.intellij.openapi.externalSystem.settings.AbstractExternalSystemSettings;
|
||||
import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
|
||||
@@ -46,7 +33,6 @@ import java.util.Map;
|
||||
public class ExternalModuleStructureExtension extends ModuleStructureExtension {
|
||||
|
||||
private static final Logger LOG = Logger.getInstance(ExternalModuleStructureExtension.class);
|
||||
@SuppressWarnings("StatefulEp")
|
||||
@Nullable
|
||||
private Project myProject;
|
||||
private boolean isExternalSystemsInvolved;
|
||||
+2
-18
@@ -1,18 +1,4 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.openapi.externalSystem.service.project;
|
||||
|
||||
import com.intellij.facet.ModifiableFacetModel;
|
||||
@@ -54,8 +40,7 @@ public class IdeUIModifiableModelsProvider extends AbstractIdeModifiableModelsPr
|
||||
return myLibrariesModel;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ModifiableArtifactModel doGetModifiableArtifactModel() {
|
||||
public ModifiableArtifactModel getModifiableArtifactModel() {
|
||||
return myModifiableArtifactModel;
|
||||
}
|
||||
|
||||
@@ -81,7 +66,6 @@ public class IdeUIModifiableModelsProvider extends AbstractIdeModifiableModelsPr
|
||||
|
||||
@Override
|
||||
public void commit() {
|
||||
processExternalArtifactDependencies();
|
||||
}
|
||||
|
||||
@Override
|
||||
+276
@@ -0,0 +1,276 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.openapi.externalSystem.service.project;
|
||||
|
||||
import com.intellij.facet.Facet;
|
||||
import com.intellij.facet.FacetModel;
|
||||
import com.intellij.facet.FacetTypeId;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.externalSystem.project.ArtifactExternalDependenciesImporter;
|
||||
import com.intellij.openapi.externalSystem.project.PackagingModifiableModel;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ModuleRootModel;
|
||||
import com.intellij.openapi.roots.ProjectModelExternalSource;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTable;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
|
||||
import com.intellij.openapi.roots.ui.configuration.FacetsProvider;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
|
||||
import com.intellij.packaging.artifacts.*;
|
||||
import com.intellij.packaging.elements.CompositePackagingElement;
|
||||
import com.intellij.packaging.elements.ManifestFileProvider;
|
||||
import com.intellij.packaging.elements.PackagingElementResolvingContext;
|
||||
import com.intellij.packaging.impl.artifacts.DefaultManifestFileProvider;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class PackagingModifiableModelImpl implements PackagingModifiableModel {
|
||||
|
||||
private final Project myProject;
|
||||
private final IdeModifiableModelsProvider myModelsProvider;
|
||||
private ModifiableArtifactModel myModifiableArtifactModel;
|
||||
private MyPackagingElementResolvingContext myPackagingElementResolvingContext;
|
||||
private final ArtifactExternalDependenciesImporter myArtifactExternalDependenciesImporter;
|
||||
|
||||
public PackagingModifiableModelImpl(@NotNull Project project, @NotNull IdeModifiableModelsProvider modifiableModelsProvider) {
|
||||
myProject = project;
|
||||
myModelsProvider = modifiableModelsProvider;
|
||||
myArtifactExternalDependenciesImporter = new ArtifactExternalDependenciesImporterImpl();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ModifiableArtifactModel getModifiableArtifactModel() {
|
||||
if (myModifiableArtifactModel == null) {
|
||||
myModifiableArtifactModel = myModelsProvider instanceof IdeUIModifiableModelsProvider
|
||||
?
|
||||
((IdeUIModifiableModelsProvider)myModelsProvider).getModifiableArtifactModel()
|
||||
: doGetModifiableArtifactModel();
|
||||
}
|
||||
return myModifiableArtifactModel;
|
||||
}
|
||||
|
||||
private ModifiableArtifactModel doGetModifiableArtifactModel() {
|
||||
return ReadAction.compute(() -> {
|
||||
ArtifactManager artifactManager = ArtifactManager.getInstance(myProject);
|
||||
return artifactManager != null ? artifactManager.createModifiableModel() : new DummyArtifactModel();
|
||||
});
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public PackagingElementResolvingContext getPackagingElementResolvingContext() {
|
||||
if (myPackagingElementResolvingContext == null) {
|
||||
myPackagingElementResolvingContext = new MyPackagingElementResolvingContext();
|
||||
}
|
||||
return myPackagingElementResolvingContext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArtifactExternalDependenciesImporter getArtifactExternalDependenciesImporter() {
|
||||
return myArtifactExternalDependenciesImporter;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void commit() {
|
||||
myArtifactExternalDependenciesImporter.applyChanges(getModifiableArtifactModel(), getPackagingElementResolvingContext());
|
||||
if (myModifiableArtifactModel != null) {
|
||||
myModifiableArtifactModel.commit();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
if (myModifiableArtifactModel != null) {
|
||||
myModifiableArtifactModel.commit();
|
||||
}
|
||||
}
|
||||
|
||||
private class MyPackagingElementResolvingContext implements PackagingElementResolvingContext {
|
||||
private final ModulesProvider myModulesProvider = new MyModulesProvider();
|
||||
private final MyFacetsProvider myFacetsProvider = new MyFacetsProvider();
|
||||
private final ManifestFileProvider myManifestFileProvider = new DefaultManifestFileProvider(this);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public Project getProject() {
|
||||
return myProject;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ArtifactModel getArtifactModel() {
|
||||
return PackagingModifiableModelImpl.this.getModifiableArtifactModel();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ModulesProvider getModulesProvider() {
|
||||
return myModulesProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public FacetsProvider getFacetsProvider() {
|
||||
return myFacetsProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Library findLibrary(@NotNull String level, @NotNull String libraryName) {
|
||||
if (level.equals(LibraryTablesRegistrar.PROJECT_LEVEL)) {
|
||||
return myModelsProvider.getLibraryByName(libraryName);
|
||||
}
|
||||
final LibraryTable table = LibraryTablesRegistrar.getInstance().getLibraryTableByLevel(level, myProject);
|
||||
return table != null ? table.getLibraryByName(libraryName) : null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ManifestFileProvider getManifestFileProvider() {
|
||||
return myManifestFileProvider;
|
||||
}
|
||||
}
|
||||
|
||||
private class MyModulesProvider implements ModulesProvider {
|
||||
@Override
|
||||
@NotNull
|
||||
public Module[] getModules() {
|
||||
return myModelsProvider.getModules();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Module getModule(@NotNull String name) {
|
||||
return myModelsProvider.findIdeModule(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModuleRootModel getRootModel(@NotNull Module module) {
|
||||
return myModelsProvider.getModifiableRootModel(module);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public FacetModel getFacetModel(@NotNull Module module) {
|
||||
return myModelsProvider.getModifiableFacetModel(module);
|
||||
}
|
||||
}
|
||||
|
||||
private class MyFacetsProvider implements FacetsProvider {
|
||||
@Override
|
||||
@NotNull
|
||||
public Facet[] getAllFacets(Module module) {
|
||||
return myModelsProvider.getModifiableFacetModel(module).getAllFacets();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public <F extends Facet> Collection<F> getFacetsByType(Module module, FacetTypeId<F> type) {
|
||||
return myModelsProvider.getModifiableFacetModel(module).getFacetsByType(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <F extends Facet> F findFacet(Module module, FacetTypeId<F> type, String name) {
|
||||
return myModelsProvider.getModifiableFacetModel(module).findFacet(type, name);
|
||||
}
|
||||
}
|
||||
|
||||
private static class DummyArtifactModel implements ModifiableArtifactModel {
|
||||
@NotNull
|
||||
@Override
|
||||
public ModifiableArtifact addArtifact(@NotNull String name, @NotNull ArtifactType artifactType) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ModifiableArtifact addArtifact(@NotNull String name,
|
||||
@NotNull ArtifactType artifactType,
|
||||
CompositePackagingElement<?> rootElement) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ModifiableArtifact addArtifact(@NotNull String name,
|
||||
@NotNull ArtifactType artifactType,
|
||||
CompositePackagingElement<?> rootElement,
|
||||
@Nullable ProjectModelExternalSource externalSource) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeArtifact(@NotNull Artifact artifact) {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ModifiableArtifact getOrCreateModifiableArtifact(@NotNull Artifact artifact) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Artifact getModifiableCopy(Artifact artifact) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener(@NotNull ArtifactListener listener) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeListener(@NotNull ArtifactListener listener) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isModified() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void commit() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Artifact[] getArtifacts() {
|
||||
return new Artifact[0];
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Artifact findArtifact(@NotNull String name) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Artifact getArtifactByOriginal(@NotNull Artifact artifact) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Artifact getOriginalArtifact(@NotNull Artifact artifact) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<? extends Artifact> getArtifactsByType(@NotNull ArtifactType type) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Artifact> getAllArtifactsIncludingInvalid() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.openapi.externalSystem.service.project;
|
||||
|
||||
import com.intellij.openapi.externalSystem.project.PackagingModifiableModel;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public class PackagingModifiableModelProvider implements ModifiableModelsProviderExtension<PackagingModifiableModel> {
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Pair<Class<PackagingModifiableModel>, PackagingModifiableModel> create(@NotNull Project project,
|
||||
@NotNull IdeModifiableModelsProvider modelsProvider) {
|
||||
return Pair.create(PackagingModifiableModel.class, new PackagingModifiableModelImpl(project, modelsProvider));
|
||||
}
|
||||
}
|
||||
@@ -658,6 +658,9 @@
|
||||
|
||||
<externalSystem.runConfigurationImporter implementation="com.intellij.execution.application.JavaApplicationRunConfigurationImporter"/>
|
||||
<externalSystem.runConfigurationImporter implementation="com.intellij.execution.remote.JavaRemoteDebugRunConfigurationImporter"/>
|
||||
<externalSystem.modifiableModelsProvider implementation="com.intellij.openapi.externalSystem.service.project.PackagingModifiableModelProvider"/>
|
||||
<configuration.ModuleStructureExtension
|
||||
implementation="com.intellij.openapi.externalSystem.service.project.ExternalModuleStructureExtension"/>
|
||||
|
||||
<runLineMarkerContributor language="JVM"
|
||||
order="before applicationRunLineMarkerProvider"
|
||||
|
||||
+8
@@ -52,6 +52,14 @@ public interface IdeModifiableModelsProvider extends IdeModelsProvider, UserData
|
||||
@NotNull
|
||||
ModifiableFacetModel getModifiableFacetModel(Module module);
|
||||
|
||||
@Nullable
|
||||
@ApiStatus.Experimental
|
||||
<T extends ModifiableModel> T findModifiableModel(@NotNull Class<T> instanceOf);
|
||||
|
||||
@NotNull
|
||||
@ApiStatus.Experimental
|
||||
<T extends ModifiableModel> T getModifiableModel(@NotNull Class<T> instanceOf);
|
||||
|
||||
@NotNull
|
||||
LibraryTable.ModifiableModel getModifiableProjectLibrariesModel();
|
||||
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.openapi.externalSystem.service.project;
|
||||
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public
|
||||
interface ModifiableModel {
|
||||
void commit();
|
||||
|
||||
void dispose();
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.openapi.externalSystem.service.project;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@ApiStatus.Experimental
|
||||
public interface ModifiableModelsProviderExtension<T extends ModifiableModel> {
|
||||
@NotNull
|
||||
Pair<Class<T>, T> create(@NotNull Project project, @NotNull IdeModifiableModelsProvider modelsProvider);
|
||||
}
|
||||
@@ -11,7 +11,6 @@
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="module" module-name="intellij.java.ui" />
|
||||
<orderEntry type="module" module-name="intellij.platform.externalSystem" />
|
||||
<orderEntry type="module" module-name="intellij.platform.projectModel.impl" />
|
||||
<orderEntry type="module" module-name="intellij.java.compiler" />
|
||||
|
||||
+30
-141
@@ -1,9 +1,6 @@
|
||||
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package com.intellij.openapi.externalSystem.service.project;
|
||||
|
||||
import com.intellij.facet.Facet;
|
||||
import com.intellij.facet.FacetModel;
|
||||
import com.intellij.facet.FacetTypeId;
|
||||
import com.intellij.facet.ModifiableFacetModel;
|
||||
import com.intellij.ide.highlighter.ModuleFileType;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
@@ -11,6 +8,7 @@ import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.application.ReadAction;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.externalSystem.ExternalSystemManager;
|
||||
import com.intellij.openapi.externalSystem.model.DataNode;
|
||||
import com.intellij.openapi.externalSystem.model.ExternalProjectInfo;
|
||||
@@ -18,8 +16,6 @@ import com.intellij.openapi.externalSystem.model.ProjectKeys;
|
||||
import com.intellij.openapi.externalSystem.model.project.LibraryData;
|
||||
import com.intellij.openapi.externalSystem.model.project.ModuleData;
|
||||
import com.intellij.openapi.externalSystem.model.project.ProjectCoordinate;
|
||||
import com.intellij.openapi.externalSystem.project.ArtifactExternalDependenciesImporter;
|
||||
import com.intellij.openapi.externalSystem.project.ModifiableArtifactsProvider;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
|
||||
import com.intellij.openapi.module.ModifiableModuleModel;
|
||||
import com.intellij.openapi.module.Module;
|
||||
@@ -32,19 +28,14 @@ import com.intellij.openapi.roots.impl.ModifiableModelCommitter;
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryEx;
|
||||
import com.intellij.openapi.roots.libraries.Library;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTable;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
|
||||
import com.intellij.openapi.roots.ui.configuration.FacetsProvider;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.UserDataHolderBase;
|
||||
import com.intellij.openapi.util.io.FileUtilRt;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.packaging.artifacts.ArtifactModel;
|
||||
import com.intellij.packaging.artifacts.ModifiableArtifactModel;
|
||||
import com.intellij.packaging.elements.ManifestFileProvider;
|
||||
import com.intellij.packaging.elements.PackagingElementResolvingContext;
|
||||
import com.intellij.packaging.impl.artifacts.DefaultManifestFileProvider;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.containers.ClassMap;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.graph.CachingSemiGraph;
|
||||
import com.intellij.util.graph.Graph;
|
||||
@@ -61,18 +52,18 @@ import java.util.*;
|
||||
import static com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil.isRelated;
|
||||
import static com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil.toCanonicalPath;
|
||||
|
||||
public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProviderImpl implements IdeModifiableModelsProvider,
|
||||
ModifiableArtifactsProvider {
|
||||
public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProviderImpl implements IdeModifiableModelsProvider {
|
||||
private static final Logger LOG = Logger.getInstance(AbstractIdeModifiableModelsProvider.class);
|
||||
|
||||
private final static ExtensionPointName<ModifiableModelsProviderExtension<ModifiableModel>> EP_NAME =
|
||||
ExtensionPointName.create("com.intellij.externalSystem.modifiableModelsProvider");
|
||||
|
||||
private ModifiableModuleModel myModifiableModuleModel;
|
||||
private final Map<Module, ModifiableRootModel> myModifiableRootModels = new THashMap<>();
|
||||
private final Map<Module, ModifiableFacetModel> myModifiableFacetModels = new THashMap<>();
|
||||
private final Map<Module, String> myProductionModulesForTestModules = new THashMap<>();
|
||||
private final Map<Library, Library.ModifiableModel> myModifiableLibraryModels = new IdentityHashMap<>();
|
||||
private ModifiableArtifactModel myModifiableArtifactModel;
|
||||
private AbstractIdeModifiableModelsProvider.MyPackagingElementResolvingContext myPackagingElementResolvingContext;
|
||||
private final ArtifactExternalDependenciesImporter myArtifactExternalDependenciesImporter;
|
||||
private final ClassMap<ModifiableModel> myModifiableModels = new ClassMap<>();
|
||||
@Nullable
|
||||
private ModifiableWorkspace myModifiableWorkspace;
|
||||
private final MyUserDataHolderBase myUserData;
|
||||
@@ -81,10 +72,27 @@ public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProvi
|
||||
public AbstractIdeModifiableModelsProvider(@NotNull Project project) {
|
||||
super(project);
|
||||
myUserData = new MyUserDataHolderBase();
|
||||
myArtifactExternalDependenciesImporter = new ArtifactExternalDependenciesImporterImpl();
|
||||
for (ModifiableModelsProviderExtension<ModifiableModel> extension : EP_NAME.getIterable()) {
|
||||
Pair<Class<ModifiableModel>, ModifiableModel> pair = extension.create(project, this);
|
||||
myModifiableModels.put(pair.first, pair.second);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract ModifiableArtifactModel doGetModifiableArtifactModel();
|
||||
@Nullable
|
||||
@Override
|
||||
public <T extends ModifiableModel> T findModifiableModel(@NotNull Class<T> instanceOf) {
|
||||
return ObjectUtils.tryCast(myModifiableModels.get(instanceOf), instanceOf);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public <T extends ModifiableModel> T getModifiableModel(@NotNull Class<T> instanceOf) {
|
||||
ModifiableModel model = myModifiableModels.get(instanceOf);
|
||||
if (instanceOf.isInstance(model)) {
|
||||
return instanceOf.cast(model);
|
||||
}
|
||||
throw new AssertionError(String.format("Unable to get `%s` model", instanceOf.getSimpleName()));
|
||||
}
|
||||
|
||||
protected abstract ModifiableModuleModel doGetModifiableModuleModel();
|
||||
|
||||
@@ -104,18 +112,6 @@ public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProvi
|
||||
return getModifiableModuleModel().getModules();
|
||||
}
|
||||
|
||||
protected void processExternalArtifactDependencies() {
|
||||
myArtifactExternalDependenciesImporter.applyChanges(getModifiableArtifactModel(), getPackagingElementResolvingContext());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PackagingElementResolvingContext getPackagingElementResolvingContext() {
|
||||
if (myPackagingElementResolvingContext == null) {
|
||||
myPackagingElementResolvingContext = new MyPackagingElementResolvingContext();
|
||||
}
|
||||
return myPackagingElementResolvingContext;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public OrderEntry[] getOrderEntries(@NotNull Module module) {
|
||||
@@ -219,15 +215,6 @@ public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProvi
|
||||
return myModifiableFacetModels.computeIfAbsent(module, k -> doGetModifiableFacetModel(module));
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ModifiableArtifactModel getModifiableArtifactModel() {
|
||||
if (myModifiableArtifactModel == null) {
|
||||
myModifiableArtifactModel = doGetModifiableArtifactModel();
|
||||
}
|
||||
return myModifiableArtifactModel;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public Library[] getAllLibraries() {
|
||||
@@ -283,11 +270,6 @@ public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProvi
|
||||
return ModalityState.NON_MODAL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ArtifactExternalDependenciesImporter getArtifactExternalDependenciesImporter() {
|
||||
return myArtifactExternalDependenciesImporter;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public List<Module> getAllDependentModules(@NotNull Module module) {
|
||||
@@ -328,101 +310,12 @@ public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProvi
|
||||
}
|
||||
}
|
||||
|
||||
private class MyPackagingElementResolvingContext implements PackagingElementResolvingContext {
|
||||
private final ModulesProvider myModulesProvider = new MyModulesProvider();
|
||||
private final MyFacetsProvider myFacetsProvider = new MyFacetsProvider();
|
||||
private final ManifestFileProvider myManifestFileProvider = new DefaultManifestFileProvider(this);
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public Project getProject() {
|
||||
return myProject;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ArtifactModel getArtifactModel() {
|
||||
return AbstractIdeModifiableModelsProvider.this.getModifiableArtifactModel();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public ModulesProvider getModulesProvider() {
|
||||
return myModulesProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public FacetsProvider getFacetsProvider() {
|
||||
return myFacetsProvider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Library findLibrary(@NotNull String level, @NotNull String libraryName) {
|
||||
if (level.equals(LibraryTablesRegistrar.PROJECT_LEVEL)) {
|
||||
return getLibraryByName(libraryName);
|
||||
}
|
||||
final LibraryTable table = LibraryTablesRegistrar.getInstance().getLibraryTableByLevel(level, myProject);
|
||||
return table != null ? table.getLibraryByName(libraryName) : null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ManifestFileProvider getManifestFileProvider() {
|
||||
return myManifestFileProvider;
|
||||
}
|
||||
}
|
||||
|
||||
private class MyModulesProvider implements ModulesProvider {
|
||||
@Override
|
||||
@NotNull
|
||||
public Module[] getModules() {
|
||||
return AbstractIdeModifiableModelsProvider.this.getModules();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Module getModule(@NotNull String name) {
|
||||
return AbstractIdeModifiableModelsProvider.this.findIdeModule(name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModuleRootModel getRootModel(@NotNull Module module) {
|
||||
return AbstractIdeModifiableModelsProvider.this.getModifiableRootModel(module);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public FacetModel getFacetModel(@NotNull Module module) {
|
||||
return AbstractIdeModifiableModelsProvider.this.getModifiableFacetModel(module);
|
||||
}
|
||||
}
|
||||
|
||||
private class MyFacetsProvider implements FacetsProvider {
|
||||
@Override
|
||||
@NotNull
|
||||
public Facet[] getAllFacets(Module module) {
|
||||
return getModifiableFacetModel(module).getAllFacets();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public <F extends Facet> Collection<F> getFacetsByType(Module module, FacetTypeId<F> type) {
|
||||
return getModifiableFacetModel(module).getFacetsByType(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <F extends Facet> F findFacet(Module module, FacetTypeId<F> type, String name) {
|
||||
return getModifiableFacetModel(module).findFacet(type, name);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void commit() {
|
||||
ProjectRootManagerEx.getInstanceEx(myProject).mergeRootsChangesDuring(() -> {
|
||||
if (ExternalProjectsWorkspaceImpl.isDependencySubstitutionEnabled()) {
|
||||
updateSubstitutions();
|
||||
}
|
||||
processExternalArtifactDependencies();
|
||||
for (Map.Entry<Library, Library.ModifiableModel> entry: myModifiableLibraryModels.entrySet()) {
|
||||
Library fromLibrary = entry.getKey();
|
||||
Library.ModifiableModel modifiableModel = entry.getValue();
|
||||
@@ -460,9 +353,7 @@ public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProvi
|
||||
each.getValue().commit();
|
||||
}
|
||||
}
|
||||
if (myModifiableArtifactModel != null) {
|
||||
myModifiableArtifactModel.commit();
|
||||
}
|
||||
myModifiableModels.values().forEach(ModifiableModel::commit);
|
||||
});
|
||||
myUserData.clear();
|
||||
}
|
||||
@@ -487,10 +378,8 @@ public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProvi
|
||||
if (myModifiableModuleModel != null && myModifiableModuleModel.isChanged()) {
|
||||
myModifiableModuleModel.dispose();
|
||||
}
|
||||
if (myModifiableArtifactModel != null) {
|
||||
myModifiableArtifactModel.dispose();
|
||||
}
|
||||
|
||||
myModifiableModels.values().forEach(ModifiableModel::dispose);
|
||||
myModifiableRootModels.clear();
|
||||
myModifiableFacetModels.clear();
|
||||
myModifiableLibraryModels.clear();
|
||||
|
||||
-106
@@ -51,15 +51,6 @@ public class IdeModifiableModelsProviderImpl extends AbstractIdeModifiableModels
|
||||
return myLibrariesModel;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ModifiableArtifactModel doGetModifiableArtifactModel() {
|
||||
return ReadAction.compute(() -> {
|
||||
// todo move this to external system java module
|
||||
ArtifactManager artifactManager = ArtifactManager.getInstance(myProject);
|
||||
return artifactManager != null ? artifactManager.createModifiableModel() : new DummyArtifactModel();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ModifiableModuleModel doGetModifiableModuleModel() {
|
||||
return ReadAction.compute(() -> ModuleManager.getInstance(myProject).getModifiableModel());
|
||||
@@ -80,101 +71,4 @@ public class IdeModifiableModelsProviderImpl extends AbstractIdeModifiableModels
|
||||
protected Library.ModifiableModel doGetModifiableLibraryModel(Library library) {
|
||||
return library.getModifiableModel();
|
||||
}
|
||||
|
||||
private static class DummyArtifactModel implements ModifiableArtifactModel {
|
||||
@NotNull
|
||||
@Override
|
||||
public ModifiableArtifact addArtifact(@NotNull String name, @NotNull ArtifactType artifactType) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ModifiableArtifact addArtifact(@NotNull String name,
|
||||
@NotNull ArtifactType artifactType,
|
||||
CompositePackagingElement<?> rootElement) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ModifiableArtifact addArtifact(@NotNull String name,
|
||||
@NotNull ArtifactType artifactType,
|
||||
CompositePackagingElement<?> rootElement,
|
||||
@Nullable ProjectModelExternalSource externalSource) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeArtifact(@NotNull Artifact artifact) {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ModifiableArtifact getOrCreateModifiableArtifact(@NotNull Artifact artifact) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Artifact getModifiableCopy(Artifact artifact) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener(@NotNull ArtifactListener listener) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeListener(@NotNull ArtifactListener listener) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isModified() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void commit() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Artifact[] getArtifacts() {
|
||||
return new Artifact[0];
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public Artifact findArtifact(@NotNull String name) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Artifact getArtifactByOriginal(@NotNull Artifact artifact) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Artifact getOriginalArtifact(@NotNull Artifact artifact) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<? extends Artifact> getArtifactsByType(@NotNull ArtifactType type) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<? extends Artifact> getAllArtifactsIncludingInvalid() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -11,7 +11,6 @@ import com.intellij.openapi.externalSystem.model.project.LibraryPathType;
|
||||
import com.intellij.openapi.externalSystem.model.project.ProjectData;
|
||||
import com.intellij.openapi.externalSystem.service.project.ExternalLibraryPathTypeMapper;
|
||||
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider;
|
||||
import com.intellij.openapi.externalSystem.service.project.IdeUIModifiableModelsProvider;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemConstants;
|
||||
import com.intellij.openapi.externalSystem.util.ExternalSystemUtil;
|
||||
@@ -163,7 +162,7 @@ public final class LibraryDataService extends AbstractProjectDataService<Library
|
||||
// do not cleanup orphan project libraries if import runs from Project Structure Dialog
|
||||
// since libraries order entries cannot be imported for modules in that case
|
||||
// and hence orphans will be detected incorrectly
|
||||
if (modelsProvider instanceof IdeUIModifiableModelsProvider) return;
|
||||
if (modelsProvider.getClass().getSimpleName().equals("IdeUIModifiableModelsProvider")) return;
|
||||
|
||||
final List<Library> orphanIdeLibraries = ContainerUtil.newSmartList();
|
||||
final LibraryTable.ModifiableModel librariesModel = modelsProvider.getModifiableProjectLibrariesModel();
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
interface="com.intellij.openapi.externalSystem.service.project.ExternalProjectsWorkspaceImpl$Contributor"/>
|
||||
<extensionPoint qualifiedName="com.intellij.externalProjectDataService"
|
||||
interface="com.intellij.openapi.externalSystem.service.project.manage.ProjectDataService"/>
|
||||
<extensionPoint qualifiedName="com.intellij.externalSystem.modifiableModelsProvider"
|
||||
interface="com.intellij.openapi.externalSystem.service.project.ModifiableModelsProviderExtension"/>
|
||||
<extensionPoint qualifiedName="com.intellij.externalSystemConfigurationHandler"
|
||||
interface="com.intellij.openapi.externalSystem.service.project.settings.ConfigurationHandler"/>
|
||||
<extensionPoint qualifiedName="com.intellij.externalSystem.runConfigurationImporter"
|
||||
|
||||
@@ -60,9 +60,6 @@
|
||||
implementation="com.intellij.openapi.externalSystem.service.project.settings.DetectionExcludesConfigImporter"/>
|
||||
<externalSystem.beforeRunTaskImporter implementation="com.intellij.openapi.externalSystem.service.project.settings.BuildArtifactsTaskImporter"/>
|
||||
|
||||
<configuration.ModuleStructureExtension
|
||||
implementation="com.intellij.openapi.externalSystem.service.project.manage.ExternalModuleStructureExtension"/>
|
||||
|
||||
<!--Tool window services-->
|
||||
<externalSystemViewContributor id="default" order="last"
|
||||
implementation="com.intellij.openapi.externalSystem.view.ExternalSystemViewDefaultContributor"/>
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
<action id="ExternalSystem.RefreshProject"
|
||||
class="com.intellij.openapi.externalSystem.action.RefreshExternalProjectAction"
|
||||
icon="AllIcons.Actions.Refresh"/>
|
||||
<action id="ExternalSystem.AttachProject"
|
||||
class="com.intellij.openapi.externalSystem.action.AttachExternalProjectAction"/>
|
||||
<action id="ExternalSystem.DetachProject"
|
||||
class="com.intellij.openapi.externalSystem.action.DetachExternalProjectAction"
|
||||
use-shortcut-of="$Delete"/>
|
||||
@@ -129,7 +127,7 @@
|
||||
|
||||
<group id="ExternalSystemView.ActionsToolbar.LeftPanel">
|
||||
<reference id="ExternalSystem.RefreshAllProjects"/>
|
||||
<reference id="ExternalSystem.AttachProject"/>
|
||||
<!-- <reference id="ExternalSystem.AttachProject"/>-->
|
||||
<reference ref="ExternalSystem.DetachProject"/>
|
||||
<!--<reference id="ExternalSystem.Run/>-->
|
||||
</group>
|
||||
|
||||
+3
-1
@@ -21,6 +21,7 @@ import com.intellij.appengine.facet.AppEngineFacetType;
|
||||
import com.intellij.appengine.facet.AppEngineWebIntegration;
|
||||
import com.intellij.appengine.sdk.impl.AppEngineSdkUtil;
|
||||
import com.intellij.facet.FacetType;
|
||||
import com.intellij.openapi.externalSystem.project.PackagingModifiableModel;
|
||||
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -108,7 +109,8 @@ public class AppEngineFacetImporter extends FacetImporter<AppEngineFacet, AppEng
|
||||
facet.getConfiguration().setSdkHomePath(FileUtil.toSystemIndependentName(mavenProject.getLocalRepository().getPath()) + relativePath);
|
||||
AppEngineWebIntegration.getInstance().setupDevServer(facet.getSdk());
|
||||
final String artifactName = module.getName() + ":war exploded";
|
||||
final Artifact webArtifact = getArtifactProvider(modelsProvider).getModifiableArtifactModel().findArtifact(artifactName);
|
||||
final Artifact webArtifact = modelsProvider.getModifiableModel(PackagingModifiableModel.class)
|
||||
.getModifiableArtifactModel().findArtifact(artifactName);
|
||||
AppEngineWebIntegration.getInstance().setupRunConfiguration(facet.getSdk(), webArtifact, module.getProject());
|
||||
}
|
||||
}
|
||||
|
||||
-1
@@ -3,7 +3,6 @@ package org.jetbrains.plugins.gradle.service.settings;
|
||||
|
||||
import com.intellij.ide.util.projectWizard.WizardContext;
|
||||
import com.intellij.openapi.externalSystem.service.settings.AbstractExternalProjectSettingsControl;
|
||||
import com.intellij.openapi.externalSystem.service.settings.AbstractImportFromExternalSystemControl;
|
||||
import com.intellij.openapi.externalSystem.util.PaintAwarePanel;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.intellij.facet.*;
|
||||
import com.intellij.framework.FrameworkType;
|
||||
import com.intellij.framework.detection.DetectionExcludesConfiguration;
|
||||
import com.intellij.framework.detection.impl.FrameworkDetectionUtil;
|
||||
import com.intellij.openapi.externalSystem.project.ModifiableArtifactsProvider;
|
||||
import com.intellij.openapi.externalSystem.service.project.IdeModifiableModelsProvider;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -13,8 +12,6 @@ import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.ArrayUtilRt;
|
||||
import com.intellij.util.PathUtil;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.project.MavenProject;
|
||||
import org.jetbrains.idea.maven.project.MavenProjectChanges;
|
||||
import org.jetbrains.idea.maven.project.MavenProjectsProcessorTask;
|
||||
@@ -186,15 +183,4 @@ public abstract class FacetImporter<FACET_TYPE extends Facet, FACET_CONFIG_TYPE
|
||||
|
||||
return excludesConfiguration.isExcludedFromDetection(frameworkType);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@ApiStatus.Experimental
|
||||
protected static ModifiableArtifactsProvider getArtifactProvider(@NotNull IdeModifiableModelsProvider modelsProvider) {
|
||||
if (modelsProvider instanceof ModifiableArtifactsProvider) {
|
||||
return (ModifiableArtifactsProvider)modelsProvider;
|
||||
}
|
||||
else {
|
||||
throw new AssertionError("Unable to get artifacts provider");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user