mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
artifacts & conversion fixes
This commit is contained in:
+4
-3
@@ -138,16 +138,17 @@ public class ArtifactManagerImpl extends ArtifactManager implements ProjectCompo
|
||||
LOG.info("Unknown artifact type: " + state.getArtifactType());
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
final String artifactName = state.getName();
|
||||
final CompositePackagingElement<?> rootElement;
|
||||
if (element != null) {
|
||||
rootElement = (CompositePackagingElement<?>)deserializeElement(element);
|
||||
}
|
||||
else {
|
||||
rootElement = type.createRootElement();
|
||||
rootElement = type.createRootElement(artifactName);
|
||||
}
|
||||
|
||||
final ArtifactImpl artifact = new ArtifactImpl(state.getName(), type, state.isBuildOnMake(), rootElement, state.getOutputPath(),
|
||||
final ArtifactImpl artifact = new ArtifactImpl(artifactName, type, state.isBuildOnMake(), rootElement, state.getOutputPath(),
|
||||
state.isClearOutputOnRebuild());
|
||||
final List<ArtifactPropertiesState> propertiesList = state.getPropertiesList();
|
||||
for (ArtifactPropertiesState propertiesState : propertiesList) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.intellij.packaging.impl.artifacts;
|
||||
|
||||
import com.intellij.packaging.impl.artifacts.ArtifactUtil;
|
||||
import com.intellij.packaging.artifacts.*;
|
||||
import com.intellij.packaging.elements.CompositePackagingElement;
|
||||
import com.intellij.util.EventDispatcher;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -51,8 +51,9 @@ public class ArtifactModelImpl extends ArtifactModelBase implements ModifiableAr
|
||||
public ModifiableArtifact addArtifact(@NotNull final String name, @NotNull ArtifactType artifactType) {
|
||||
final String outputPath = ArtifactUtil.getDefaultArtifactOutputPath(name, myArtifactManager.getProject());
|
||||
|
||||
final ArtifactImpl artifact = new ArtifactImpl(generateUniqueName(name), artifactType, false, artifactType.createRootElement(),
|
||||
outputPath, true);
|
||||
final String artifactName = generateUniqueName(name);
|
||||
final CompositePackagingElement<?> rootElement = artifactType.createRootElement(artifactName);
|
||||
final ArtifactImpl artifact = new ArtifactImpl(artifactName, artifactType, false, rootElement, outputPath, true);
|
||||
myOriginalArtifacts.add(artifact);
|
||||
myArtifact2ModifiableCopy.put(artifact, artifact);
|
||||
myModifiable2Original.put(artifact, artifact);
|
||||
|
||||
@@ -45,7 +45,7 @@ public class PlainArtifactType extends ArtifactType {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public CompositePackagingElement<?> createRootElement() {
|
||||
public CompositePackagingElement<?> createRootElement(@NotNull String artifactName) {
|
||||
return new ArtifactRootElementImpl();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ public abstract class ArtifactType {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public abstract CompositePackagingElement<?> createRootElement();
|
||||
public abstract CompositePackagingElement<?> createRootElement(@NotNull String artifactName);
|
||||
|
||||
public void checkRootElement(@NotNull CompositePackagingElement<?> rootElement, @NotNull Artifact artifact, @NotNull ArtifactValidationManager manager) {
|
||||
}
|
||||
|
||||
+1
-1
@@ -104,7 +104,7 @@ public class ArtifactConfigurable extends NamedConfigurable<Artifact> {
|
||||
final ArtifactType selected = (ArtifactType)artifactTypeBox.getSelectedItem();
|
||||
if (!Comparing.equal(selected, getArtifact().getArtifactType())) {
|
||||
final CompositePackagingElement<?> element = myEditor.getRootElement();
|
||||
final CompositePackagingElement<?> newRootElement = selected.createRootElement();
|
||||
final CompositePackagingElement<?> newRootElement = selected.createRootElement(getArtifact().getName());
|
||||
myArtifactsStructureContext.getModifiableArtifactModel().getOrCreateModifiableArtifact(myOriginalArtifact).setArtifactType(selected);
|
||||
if (!newRootElement.getType().equals(element.getType())) {
|
||||
ArtifactUtil.copyChildren(element, newRootElement, myArtifactsStructureContext.getProject());
|
||||
|
||||
+12
@@ -23,6 +23,7 @@ import com.intellij.packaging.artifacts.ModifiableArtifact;
|
||||
import com.intellij.packaging.elements.CompositePackagingElement;
|
||||
import com.intellij.packaging.elements.PackagingElementType;
|
||||
import com.intellij.packaging.impl.artifacts.ArtifactUtil;
|
||||
import com.intellij.packaging.impl.elements.ArchivePackagingElement;
|
||||
import com.intellij.packaging.ui.ManifestFileConfiguration;
|
||||
import com.intellij.ui.PopupHandler;
|
||||
import com.intellij.ui.ScrollPaneFactory;
|
||||
@@ -276,6 +277,17 @@ public class ArtifactEditorImpl implements ArtifactEditorEx {
|
||||
final String oldDefaultPath = ArtifactUtil.getDefaultArtifactOutputPath(oldArtifactName, myProject);
|
||||
if (Comparing.equal(oldDefaultPath, getConfiguredOutputPath())) {
|
||||
setOutputPath(ArtifactUtil.getDefaultArtifactOutputPath(newArtifactName, myProject));
|
||||
final CompositePackagingElement<?> root = getRootElement();
|
||||
if (root instanceof ArchivePackagingElement) {
|
||||
final String name = ((ArchivePackagingElement)root).getArchiveFileName();
|
||||
final String fileName = FileUtil.getNameWithoutExtension(name);
|
||||
final String extension = FileUtil.getExtension(name);
|
||||
if (fileName.equals(oldArtifactName) && extension.length() > 0) {
|
||||
myLayoutTreeComponent.ensureRootIsWritable();
|
||||
((ArchivePackagingElement)getRootElement()).setArchiveFileName(newArtifactName + "." + extension);
|
||||
myLayoutTreeComponent.updateTreeNodesPresentation();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author nik
|
||||
@@ -36,10 +35,6 @@ public class ComponentManagerSettingsImpl implements ComponentManagerSettings {
|
||||
return mySettingsFile.findComponent(componentName);
|
||||
}
|
||||
|
||||
public void save() throws IOException {
|
||||
mySettingsFile.save();
|
||||
}
|
||||
|
||||
public File getFile() {
|
||||
return mySettingsFile.getFile();
|
||||
}
|
||||
|
||||
@@ -6,10 +6,10 @@ import com.intellij.conversion.*;
|
||||
import com.intellij.ide.highlighter.ProjectFileType;
|
||||
import com.intellij.ide.highlighter.WorkspaceFileType;
|
||||
import com.intellij.ide.impl.convert.JDomConvertingUtil;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.components.ExpandMacroToPathMap;
|
||||
import com.intellij.openapi.components.StorageScheme;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.module.impl.ModuleManagerImpl;
|
||||
import com.intellij.openapi.roots.impl.libraries.LibraryImpl;
|
||||
import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
|
||||
@@ -18,7 +18,6 @@ import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.util.PathUtil;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -67,10 +66,6 @@ public class ConversionContextImpl implements ConversionContext {
|
||||
}
|
||||
|
||||
myModuleFiles = findModuleFiles(JDomConvertingUtil.loadDocument(modulesFile).getRootElement());
|
||||
if (ApplicationManager.getApplication().isUnitTestMode()) {
|
||||
System.out.println("myStorageScheme = " + myStorageScheme);
|
||||
System.out.println("myModuleFiles = " + Arrays.toString(myModuleFiles));
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -276,18 +271,12 @@ public class ConversionContextImpl implements ConversionContext {
|
||||
return myWorkspaceFile;
|
||||
}
|
||||
|
||||
public void saveFiles() throws IOException {
|
||||
if (myWorkspaceSettings != null) {
|
||||
myWorkspaceSettings.save();
|
||||
}
|
||||
if (myProjectSettings != null) {
|
||||
myProjectSettings.save();
|
||||
}
|
||||
for (ModuleSettingsImpl settings : myModuleSettingsMap.values()) {
|
||||
settings.save();
|
||||
}
|
||||
if (myRunManagerSettings != null) {
|
||||
myRunManagerSettings.save();
|
||||
public void saveFiles(Collection<File> files) throws IOException {
|
||||
for (File file : files) {
|
||||
final SettingsXmlFile xmlFile = mySettingsFiles.get(file);
|
||||
if (xmlFile != null) {
|
||||
xmlFile.save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,6 @@ import com.intellij.conversion.ConversionService;
|
||||
import com.intellij.conversion.ConverterProvider;
|
||||
import com.intellij.conversion.impl.ui.ConvertProjectDialog;
|
||||
import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.conversion.impl.ProjectConversionUtil;
|
||||
import com.intellij.openapi.application.PathManager;
|
||||
import com.intellij.openapi.components.impl.stores.IProjectStore;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
@@ -81,7 +80,7 @@ public class ConversionServiceImpl extends ConversionService {
|
||||
runner.process();
|
||||
runner.postProcess();
|
||||
}
|
||||
context.saveFiles();
|
||||
context.saveFiles(affectedFiles);
|
||||
listener.successfullyConverted(backupDir);
|
||||
saveConversionResult(context);
|
||||
return true;
|
||||
@@ -248,7 +247,7 @@ public class ConversionServiceImpl extends ConversionService {
|
||||
runner.convertModule(moduleFile);
|
||||
}
|
||||
}
|
||||
context.saveFiles();
|
||||
context.saveFiles(Collections.singletonList(moduleFile));
|
||||
Messages.showInfoMessage(project, IdeBundle.message("message.your.module.was.succesfully.converted.br.old.version.was.saved.to.0", backupFile.getAbsolutePath()),
|
||||
IdeBundle.message("dialog.title.convert.module"));
|
||||
return true;
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
package com.intellij.conversion.impl;
|
||||
|
||||
import com.intellij.conversion.RunManagerSettings;
|
||||
import com.intellij.conversion.CannotConvertException;
|
||||
import com.intellij.conversion.RunManagerSettings;
|
||||
import com.intellij.ide.impl.convert.JDomConvertingUtil;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -75,15 +74,4 @@ public class RunManagerSettingsImpl implements RunManagerSettings {
|
||||
return files;
|
||||
}
|
||||
|
||||
public void save() throws IOException {
|
||||
if (myWorkspaceFile != null) {
|
||||
myWorkspaceFile.save();
|
||||
}
|
||||
if (myProjectFile != null) {
|
||||
myProjectFile.save();
|
||||
}
|
||||
for (SettingsXmlFile file : mySharedConfigurationFiles) {
|
||||
file.save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import com.intellij.CommonBundle;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -25,6 +26,7 @@ import java.util.Set;
|
||||
* @author nik
|
||||
*/
|
||||
public class ConvertProjectDialog extends DialogWrapper {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.conversion.impl.ui.ConvertProjectDialog");
|
||||
private JPanel myMainPanel;
|
||||
private JTextPane myTextPane;
|
||||
private boolean myConverted;
|
||||
@@ -106,14 +108,16 @@ public class ConvertProjectDialog extends DialogWrapper {
|
||||
runner.postProcess();
|
||||
}
|
||||
}
|
||||
myContext.saveFiles();
|
||||
myContext.saveFiles(myAffectedFiles);
|
||||
myConverted = true;
|
||||
super.doOKAction();
|
||||
}
|
||||
catch (CannotConvertException e) {
|
||||
LOG.info(e);
|
||||
showErrorMessage(IdeBundle.message("error.cannot.convert.project", e.getMessage()));
|
||||
}
|
||||
catch (IOException e) {
|
||||
LOG.info(e);
|
||||
showErrorMessage(IdeBundle.message("error.cannot.convert.project", e.getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user