From 061016def656b066e3bd99a5e91b1a9f6c6fa27d Mon Sep 17 00:00:00 2001 From: Nikolay Chashnikov Date: Fri, 4 Sep 2009 14:47:17 +0400 Subject: [PATCH] converting packaging related parts of javaee facets to artifacts - 3 --- .../elements/ArtifactPackagingElement.java | 4 +- .../elements/FileCopyPackagingElement.java | 8 ++-- .../impl/elements/ManifestFileUtil.java | 9 ++-- .../impl/ui/FileCopyPresentation.java | 8 ++-- .../project/impl/IdeaProjectManagerImpl.java | 2 +- .../conversion/ComponentManagerSettings.java | 6 +++ .../conversion/ConversionContext.java | 18 ++++++++ .../intellij/conversion/ModuleSettings.java | 10 ++-- .../intellij/conversion/ProjectConverter.java | 18 +++++++- .../conversion/WorkspaceSettings.java | 10 ---- .../impl/ComponentManagerSettingsImpl.java | 2 + .../impl/ConversionContextImpl.java | 41 +++++++++++++++-- .../conversion/impl/ConversionRunner.java | 46 ++++++++++--------- .../conversion/impl/ModuleSettingsImpl.java | 5 ++ .../ide/impl/convert/JDomConvertingUtil.java | 10 ++++ .../src/com/intellij/util/PathUtil.java | 23 ++++++++++ .../src/messages/IdeBundle.properties | 2 +- .../impl/HeavyIdeaTestFixtureImpl.java | 7 +-- .../impl/LightTempDirTestFixtureImpl.java | 7 +-- 19 files changed, 169 insertions(+), 67 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/elements/ArtifactPackagingElement.java b/java/compiler/impl/src/com/intellij/packaging/impl/elements/ArtifactPackagingElement.java index 87e21f7212d0..e902544c742a 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/elements/ArtifactPackagingElement.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/elements/ArtifactPackagingElement.java @@ -15,6 +15,7 @@ import com.intellij.packaging.ui.ArtifactEditorContext; import com.intellij.util.xmlb.annotations.Attribute; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.NonNls; import java.util.ArrayList; import java.util.Collections; @@ -26,6 +27,7 @@ import java.util.List; public class ArtifactPackagingElement extends ComplexPackagingElement { private final Project myProject; private ArtifactPointer myArtifactPointer; + @NonNls public static final String ARTIFACT_NAME_ATTRIBUTE = "artifact-name"; public ArtifactPackagingElement(@NotNull Project project) { super(ArtifactElementType.ARTIFACT_ELEMENT_TYPE); @@ -125,7 +127,7 @@ public class ArtifactPackagingElement extends ComplexPackagingElement root, PackagingElementResolvingContext context, ArtifactType artifactType) { diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/ui/FileCopyPresentation.java b/java/compiler/impl/src/com/intellij/packaging/impl/ui/FileCopyPresentation.java index 33576e4633b6..5a9e0ceee603 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/ui/FileCopyPresentation.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/ui/FileCopyPresentation.java @@ -1,15 +1,15 @@ package com.intellij.packaging.impl.ui; +import com.intellij.ide.projectView.PresentationData; import com.intellij.openapi.compiler.CompilerBundle; import com.intellij.openapi.util.IconLoader; import com.intellij.openapi.util.io.FileUtil; -import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.packaging.ui.PackagingElementPresentation; import com.intellij.packaging.ui.PackagingElementWeights; import com.intellij.ui.SimpleTextAttributes; -import com.intellij.ide.projectView.PresentationData; +import com.intellij.util.PathUtil; import org.jetbrains.annotations.NotNull; import javax.swing.*; @@ -26,7 +26,7 @@ public class FileCopyPresentation extends PackagingElementPresentation { private final boolean myIsDirectory; public FileCopyPresentation(String filePath, String outputFileName) { - mySourceFileName = StringUtil.getShortName(filePath, '/'); + mySourceFileName = PathUtil.getFileName(filePath); myOutputFileName = outputFileName; String parentPath; @@ -37,7 +37,7 @@ public class FileCopyPresentation extends PackagingElementPresentation { myIsDirectory = myFile.isDirectory(); } else { - parentPath = FileUtil.toSystemDependentName(StringUtil.getPackageName(filePath, '/')); + parentPath = FileUtil.toSystemDependentName(PathUtil.getParentPath(filePath)); myIsDirectory = false; } diff --git a/java/idea-ui/src/com/intellij/openapi/project/impl/IdeaProjectManagerImpl.java b/java/idea-ui/src/com/intellij/openapi/project/impl/IdeaProjectManagerImpl.java index 16ca14601c25..c5def058c59f 100644 --- a/java/idea-ui/src/com/intellij/openapi/project/impl/IdeaProjectManagerImpl.java +++ b/java/idea-ui/src/com/intellij/openapi/project/impl/IdeaProjectManagerImpl.java @@ -22,7 +22,7 @@ public class IdeaProjectManagerImpl extends ProjectManagerImpl { final String fp = canonicalize(filePath); final File f = new File(fp); - if (fp != null && f.exists() && f.isFile() && !ApplicationManager.getApplication().isHeadlessEnvironment()) { + if (fp != null && f.exists() && !ApplicationManager.getApplication().isHeadlessEnvironment()) { final boolean converted = ConversionService.getInstance().convert(fp); if (!converted) { throw new ProcessCanceledException(); diff --git a/platform/lang-impl/src/com/intellij/conversion/ComponentManagerSettings.java b/platform/lang-impl/src/com/intellij/conversion/ComponentManagerSettings.java index 549e18b1990f..b9e84cda56e2 100644 --- a/platform/lang-impl/src/com/intellij/conversion/ComponentManagerSettings.java +++ b/platform/lang-impl/src/com/intellij/conversion/ComponentManagerSettings.java @@ -1,6 +1,7 @@ package com.intellij.conversion; import org.jdom.Element; +import org.jdom.Document; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -13,4 +14,9 @@ public interface ComponentManagerSettings { @Nullable Element getComponentElement(@NotNull @NonNls String componentName); + @NotNull + Element getRootElement(); + + @NotNull + Document getDocument(); } diff --git a/platform/lang-impl/src/com/intellij/conversion/ConversionContext.java b/platform/lang-impl/src/com/intellij/conversion/ConversionContext.java index 5a7b56bb4168..cae92dcaa5e6 100644 --- a/platform/lang-impl/src/com/intellij/conversion/ConversionContext.java +++ b/platform/lang-impl/src/com/intellij/conversion/ConversionContext.java @@ -1,5 +1,6 @@ package com.intellij.conversion; +import com.intellij.openapi.components.StorageScheme; import org.jetbrains.annotations.NotNull; import java.io.File; @@ -10,4 +11,21 @@ import java.io.File; public interface ConversionContext { @NotNull File getProjectBaseDir(); + + File getProjectFile(); + + StorageScheme getStorageScheme(); + + File getSettingsBaseDir(); + + ProjectSettings getProjectSettings() throws CannotConvertException; + + RunManagerSettings getRunManagerSettings() throws CannotConvertException; + + WorkspaceSettings getWorkspaceSettings() throws CannotConvertException; + + ModuleSettings getModuleSettings(File moduleFile) throws CannotConvertException; + + @NotNull + String collapsePath(@NotNull String path); } diff --git a/platform/lang-impl/src/com/intellij/conversion/ModuleSettings.java b/platform/lang-impl/src/com/intellij/conversion/ModuleSettings.java index bd1526ea57be..25f53dc24e3a 100644 --- a/platform/lang-impl/src/com/intellij/conversion/ModuleSettings.java +++ b/platform/lang-impl/src/com/intellij/conversion/ModuleSettings.java @@ -1,7 +1,6 @@ package com.intellij.conversion; import org.jdom.Element; -import org.jdom.Document; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -25,11 +24,8 @@ public interface ModuleSettings extends ComponentManagerSettings { @NotNull Collection getFacetElements(@NotNull String facetTypeId); - @NotNull - Element getRootElement(); - - @NotNull - Document getDocument(); - void setModuleType(@NotNull String moduleType); + + @NotNull + String expandPath(@NotNull String path); } diff --git a/platform/lang-impl/src/com/intellij/conversion/ProjectConverter.java b/platform/lang-impl/src/com/intellij/conversion/ProjectConverter.java index 76c1e78e21a7..f92330dcd912 100644 --- a/platform/lang-impl/src/com/intellij/conversion/ProjectConverter.java +++ b/platform/lang-impl/src/com/intellij/conversion/ProjectConverter.java @@ -2,6 +2,10 @@ package com.intellij.conversion; import org.jetbrains.annotations.Nullable; +import java.io.File; +import java.util.Collection; +import java.util.Collections; + /** * @author nik */ @@ -26,6 +30,16 @@ public abstract class ProjectConverter { return null; } - public void postProcess() { - } + public Collection getAdditionalAffectedFiles() { + return Collections.emptyList(); + } + + public void preProcessingFinished() throws CannotConvertException { + } + + public void processingFinished() throws CannotConvertException { + } + + public void postProcessingFinished() throws CannotConvertException { + } } diff --git a/platform/lang-impl/src/com/intellij/conversion/WorkspaceSettings.java b/platform/lang-impl/src/com/intellij/conversion/WorkspaceSettings.java index 0381a4cee5c5..e17e8bab156e 100644 --- a/platform/lang-impl/src/com/intellij/conversion/WorkspaceSettings.java +++ b/platform/lang-impl/src/com/intellij/conversion/WorkspaceSettings.java @@ -1,17 +1,7 @@ package com.intellij.conversion; -import org.jdom.Document; -import org.jdom.Element; -import org.jetbrains.annotations.NotNull; - /** * @author nik */ public interface WorkspaceSettings extends ComponentManagerSettings { - - @NotNull - Element getRootElement(); - - @NotNull - Document getDocument(); } diff --git a/platform/lang-impl/src/com/intellij/conversion/impl/ComponentManagerSettingsImpl.java b/platform/lang-impl/src/com/intellij/conversion/impl/ComponentManagerSettingsImpl.java index 7b58b2379930..3f7ea8a1a1e6 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ComponentManagerSettingsImpl.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ComponentManagerSettingsImpl.java @@ -15,8 +15,10 @@ import java.io.IOException; */ public abstract class ComponentManagerSettingsImpl implements ComponentManagerSettings { protected final SettingsXmlFile mySettingsFile; + protected final ConversionContextImpl myContext; protected ComponentManagerSettingsImpl(File file, ConversionContextImpl context) throws CannotConvertException { + myContext = context; mySettingsFile = context.getOrCreateFile(file); } diff --git a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionContextImpl.java b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionContextImpl.java index 3dd5483732cb..652969d9eac3 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionContextImpl.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionContextImpl.java @@ -1,6 +1,7 @@ package com.intellij.conversion.impl; import com.intellij.application.options.PathMacrosImpl; +import com.intellij.application.options.ReplacePathToMacroMap; import com.intellij.conversion.*; import com.intellij.ide.highlighter.ProjectFileType; import com.intellij.ide.highlighter.WorkspaceFileType; @@ -8,6 +9,7 @@ import com.intellij.ide.impl.convert.JDomConvertingUtil; import com.intellij.openapi.components.ExpandMacroToPathMap; import com.intellij.openapi.components.StorageScheme; import com.intellij.openapi.module.impl.ModuleManagerImpl; +import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import org.jdom.Element; @@ -15,7 +17,10 @@ import org.jetbrains.annotations.NotNull; import java.io.File; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * @author nik @@ -72,10 +77,7 @@ public class ConversionContextImpl implements ConversionContext { final Element modules = modulesManager.getChild(ModuleManagerImpl.ELEMENT_MODULES); if (modules == null) return new File[0]; - final ExpandMacroToPathMap macros = new ExpandMacroToPathMap(); - final String projectDir = FileUtil.toSystemIndependentName(myProjectBaseDir.getAbsolutePath()); - macros.addMacroExpand(PathMacrosImpl.PROJECT_DIR_MACRO_NAME, projectDir); - PathMacrosImpl.getInstanceEx().addMacroExpands(macros); + final ExpandMacroToPathMap macros = createExpandMacroMap(); List files = new ArrayList(); for (Element module : JDomConvertingUtil.getChildren(modules, ModuleManagerImpl.ELEMENT_MODULE)) { @@ -86,6 +88,35 @@ public class ConversionContextImpl implements ConversionContext { return files.toArray(new File[files.size()]); } + @NotNull + public String expandPath(@NotNull String path, @NotNull ModuleSettingsImpl moduleSettings) { + final ExpandMacroToPathMap map = createExpandMacroMap(); + final String modulePath = FileUtil.toSystemIndependentName(moduleSettings.getModuleFile().getParentFile().getAbsolutePath()); + map.addMacroExpand(PathMacrosImpl.MODULE_DIR_MACRO_NAME, modulePath); + return map.substitute(path, true, null); + } + + @NotNull + public String collapsePath(@NotNull String path) { + ReplacePathToMacroMap map = new ReplacePathToMacroMap(); + final String projectDir = FileUtil.toSystemIndependentName(myProjectBaseDir.getAbsolutePath()); + map.addMacroReplacement(projectDir, PathMacrosImpl.PROJECT_DIR_MACRO_NAME); + PathMacrosImpl.getInstanceEx().addMacroReplacements(map); + return map.substitute(path, SystemInfo.isFileSystemCaseSensitive, null); + } + + private ExpandMacroToPathMap createExpandMacroMap() { + final ExpandMacroToPathMap macros = new ExpandMacroToPathMap(); + final String projectDir = FileUtil.toSystemIndependentName(myProjectBaseDir.getAbsolutePath()); + macros.addMacroExpand(PathMacrosImpl.PROJECT_DIR_MACRO_NAME, projectDir); + PathMacrosImpl.getInstanceEx().addMacroExpands(macros); + return macros; + } + + public File getSettingsBaseDir() { + return mySettingsBaseDir; + } + public File getProjectFile() { return myProjectFile; } diff --git a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java index 2c417c43f01e..9dfd6be336ad 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionRunner.java @@ -4,9 +4,7 @@ import com.intellij.conversion.*; import com.intellij.openapi.components.StorageScheme; import java.io.File; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; +import java.util.*; /** * @author nik @@ -59,6 +57,26 @@ public class ConversionRunner { return myModuleFileConverter != null && myModuleFileConverter.isConversionNeeded(myContext.getModuleSettings(moduleFile)); } + public Set getAffectedFiles() { + Set affectedFiles = new HashSet(); + if (myProcessProjectFile) { + affectedFiles.add(myContext.getProjectFile()); + } + if (myProcessWorkspaceFile) { + affectedFiles.add(myContext.getWorkspaceFile()); + } + affectedFiles.addAll(myModulesFilesToProcess); + if (myProcessRunConfigurations) { + try { + affectedFiles.addAll(myContext.getRunManagerSettings().getAffectedFiles()); + } + catch (CannotConvertException ignored) { + } + } + affectedFiles.addAll(myConverter.getAdditionalAffectedFiles()); + return affectedFiles; + } + public void preProcess() throws CannotConvertException { if (myProcessProjectFile) { myProjectFileConverter.preProcess(myContext.getProjectSettings()); @@ -75,25 +93,8 @@ public class ConversionRunner { if (myProcessRunConfigurations) { myRunConfigurationsConverter.preProcess(myContext.getRunManagerSettings()); } - } - public List getAffectedFiles() { - List affectedFiles = new ArrayList(); - if (myProcessProjectFile) { - affectedFiles.add(myContext.getProjectFile()); - } - if (myProcessWorkspaceFile) { - affectedFiles.add(myContext.getWorkspaceFile()); - } - affectedFiles.addAll(myModulesFilesToProcess); - if (myProcessRunConfigurations) { - try { - affectedFiles.addAll(myContext.getRunManagerSettings().getAffectedFiles()); - } - catch (CannotConvertException ignored) { - } - } - return affectedFiles; + myConverter.preProcessingFinished(); } public void process() throws CannotConvertException { @@ -112,6 +113,7 @@ public class ConversionRunner { if (myProcessRunConfigurations) { myRunConfigurationsConverter.process(myContext.getRunManagerSettings()); } + myConverter.processingFinished(); } public void postProcess() throws CannotConvertException { @@ -131,7 +133,7 @@ public class ConversionRunner { myRunConfigurationsConverter.postProcess(myContext.getRunManagerSettings()); } - myConverter.postProcess(); + myConverter.postProcessingFinished(); } public ConverterProvider getProvider() { diff --git a/platform/lang-impl/src/com/intellij/conversion/impl/ModuleSettingsImpl.java b/platform/lang-impl/src/com/intellij/conversion/impl/ModuleSettingsImpl.java index 96e1cff0943d..0bb943a82b85 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ModuleSettingsImpl.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ModuleSettingsImpl.java @@ -56,4 +56,9 @@ public class ModuleSettingsImpl extends ComponentManagerSettingsImpl implements public void setModuleType(@NotNull String moduleType) { getRootElement().setAttribute(ModuleImpl.ELEMENT_TYPE, moduleType); } + + @NotNull + public String expandPath(@NotNull String path) { + return myContext.expandPath(path, this); + } } diff --git a/platform/lang-impl/src/com/intellij/ide/impl/convert/JDomConvertingUtil.java b/platform/lang-impl/src/com/intellij/ide/impl/convert/JDomConvertingUtil.java index 9ff9c99dce67..7c3f27bdf6c3 100644 --- a/platform/lang-impl/src/com/intellij/ide/impl/convert/JDomConvertingUtil.java +++ b/platform/lang-impl/src/com/intellij/ide/impl/convert/JDomConvertingUtil.java @@ -156,6 +156,16 @@ public class JDomConvertingUtil { return element; } + @NotNull + public static Element findOrCreateComponentElement(@NotNull Element root, @NotNull String componentName) { + Element component = findComponent(root, componentName); + if (component == null) { + component = createComponentElement(componentName); + addComponent(root, component); + } + return component; + } + public static void addComponent(final Element root, final Element component) { String componentName = component.getAttributeValue(NAME_ATTRIBUTE); final Element old = findComponent(root, componentName); diff --git a/platform/platform-api/src/com/intellij/util/PathUtil.java b/platform/platform-api/src/com/intellij/util/PathUtil.java index 1ca90d529454..ad5342ace2bd 100644 --- a/platform/platform-api/src/com/intellij/util/PathUtil.java +++ b/platform/platform-api/src/com/intellij/util/PathUtil.java @@ -102,6 +102,29 @@ public class PathUtil { return result.toString(); } + @NotNull + public static String getFileName(@NotNull String path) { + if (path.length() == 0) { + return ""; + } + final char c = path.charAt(path.length() - 1); + int end = c == '/' || c == '\\' ? path.length() - 1 : path.length(); + int start = Math.max(path.lastIndexOf('/', end - 1), path.lastIndexOf('\\', end - 1)) + 1; + return path.substring(start, end); + } + + @NotNull + public static String getParentPath(@NotNull String path) { + if (path.length() == 0) { + return ""; + } + int end = Math.max(path.lastIndexOf('/'), path.lastIndexOf('\\')); + if (end == path.length() - 1) { + end = path.lastIndexOf('/', end - 1); + } + return end == -1 ? "" : path.substring(0, end); + } + public static String suggestFileName(final String text) { return text.replace(' ', '_') .replace('.', '_') diff --git a/platform/platform-resources-en/src/messages/IdeBundle.properties b/platform/platform-resources-en/src/messages/IdeBundle.properties index 3bf9520a9d44..90f946dd68b6 100644 --- a/platform/platform-resources-en/src/messages/IdeBundle.properties +++ b/platform/platform-resources-en/src/messages/IdeBundle.properties @@ -250,7 +250,7 @@ error.project.file.is.corrupted=Project file is corrupted title.cannot.convert.project=Cannot Convert Project dialog.title.convert.project=Convert Project -label.text.project.has.older.format=The project ''{0}'' has an older format and will be converted. You will not be able to open the project by earlier versions of IDEA. Details +label.text.project.has.older.format=The project ''{0}'' has an older format and will be converted. You won''t be able to open the project by earlier versions of IDEA. Details label.text.unlock.read.only.files=The following files are read only. IDEA will unlock them. error.message.cannot.make.files.writable=Cannot make the following files writable:\n{0} label.text.project.was.succesfully.converted.old.version.was.saved.to.0=Your project was succesfully converted. \ diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java index ce2d7da2c917..07d45f0f293f 100644 --- a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java +++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/HeavyIdeaTestFixtureImpl.java @@ -4,6 +4,7 @@ package com.intellij.testFramework.fixtures.impl; +import com.intellij.codeInsight.completion.CompletionProgressIndicator; import com.intellij.ide.highlighter.ProjectFileType; import com.intellij.ide.startup.impl.StartupManagerImpl; import com.intellij.idea.IdeaTestApplication; @@ -32,11 +33,11 @@ import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiManager; -import com.intellij.testFramework.PlatformTestCase; import com.intellij.testFramework.EditorListenerTracker; +import com.intellij.testFramework.PlatformTestCase; import com.intellij.testFramework.builders.ModuleFixtureBuilder; import com.intellij.testFramework.fixtures.HeavyIdeaTestFixture; -import com.intellij.codeInsight.completion.CompletionProgressIndicator; +import com.intellij.util.PathUtil; import gnu.trove.THashSet; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.Nullable; @@ -188,7 +189,7 @@ class HeavyIdeaTestFixtureImpl extends BaseFixture implements HeavyIdeaTestFixtu root = roots[0]; } final VirtualFile[] virtualFile = new VirtualFile[1]; - final VirtualFile dir = VfsUtil.createDirectories(root.getPath() + "/" + StringUtil.getPackageName(relativePath, '/')); + final VirtualFile dir = VfsUtil.createDirectories(root.getPath() + "/" + PathUtil.getParentPath(relativePath)); new WriteCommandAction.Simple(getProject()) { protected void run() throws Throwable { diff --git a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/LightTempDirTestFixtureImpl.java b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/LightTempDirTestFixtureImpl.java index 7368d7469891..a6202eb9eca1 100644 --- a/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/LightTempDirTestFixtureImpl.java +++ b/platform/testFramework/src/com/intellij/testFramework/fixtures/impl/LightTempDirTestFixtureImpl.java @@ -7,8 +7,9 @@ import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; -import com.intellij.testFramework.fixtures.TempDirTestFixture; import com.intellij.testFramework.LightPlatformTestCase; +import com.intellij.testFramework.fixtures.TempDirTestFixture; +import com.intellij.util.PathUtil; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -124,8 +125,8 @@ public class LightTempDirTestFixtureImpl extends BaseFixture implements TempDirT @NotNull public VirtualFile createFile(String targetPath) { - final String path = StringUtil.getPackageName(targetPath, '/'); - final String name = StringUtil.getShortName(targetPath, '/'); + final String path = PathUtil.getParentPath(targetPath); + final String name = PathUtil.getFileName(targetPath); return ApplicationManager.getApplication().runWriteAction(new Computable() { public VirtualFile compute() { try {