diff --git a/java/idea-ui/src/com/intellij/jar/BuildJarProjectSettings.java b/java/idea-ui/src/com/intellij/jar/BuildJarProjectSettings.java index 96e9d616498d..f08ee333874c 100644 --- a/java/idea-ui/src/com/intellij/jar/BuildJarProjectSettings.java +++ b/java/idea-ui/src/com/intellij/jar/BuildJarProjectSettings.java @@ -61,6 +61,7 @@ public class BuildJarProjectSettings implements PersistentStateComponent getLibraryClassRoots(@NotNull String name, @NotNull String level); + + @Nullable + ComponentManagerSettings getCompilerSettings(); } 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 3f7ea8a1a1e6..45a8bfbb9bbf 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ComponentManagerSettingsImpl.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ComponentManagerSettingsImpl.java @@ -13,7 +13,7 @@ import java.io.IOException; /** * @author nik */ -public abstract class ComponentManagerSettingsImpl implements ComponentManagerSettings { +public class ComponentManagerSettingsImpl implements ComponentManagerSettings { protected final SettingsXmlFile mySettingsFile; protected final ConversionContextImpl myContext; @@ -39,4 +39,8 @@ public abstract class ComponentManagerSettingsImpl implements ComponentManagerSe public void save() throws IOException { mySettingsFile.save(); } + + public File getFile() { + return mySettingsFile.getFile(); + } } 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 91d911a2b8f9..4a1b16b209bb 100644 --- a/platform/lang-impl/src/com/intellij/conversion/impl/ConversionContextImpl.java +++ b/platform/lang-impl/src/com/intellij/conversion/impl/ConversionContextImpl.java @@ -18,6 +18,7 @@ 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; @@ -32,6 +33,7 @@ import java.util.*; * @author nik */ public class ConversionContextImpl implements ConversionContext { + private static final Logger LOG = Logger.getInstance("#com.intellij.conversion.impl.ConversionContextImpl"); private Map mySettingsFiles = new HashMap(); private StorageScheme myStorageScheme; private File myProjectBaseDir; @@ -44,6 +46,7 @@ public class ConversionContextImpl implements ConversionContext { private Map myModuleSettingsMap = new HashMap(); private RunManagerSettingsImpl myRunManagerSettings; private File mySettingsBaseDir; + private ComponentManagerSettings myCompilerManagerSettings; public ConversionContextImpl(String projectPath) throws CannotConvertException { myProjectFile = new File(projectPath); @@ -147,6 +150,26 @@ public class ConversionContextImpl implements ConversionContext { } } + public ComponentManagerSettings getCompilerSettings() { + if (myCompilerManagerSettings == null) { + try { + File file; + if (myStorageScheme == StorageScheme.DEFAULT) { + file = myProjectFile; + } + else { + file = new File(mySettingsBaseDir, "compiler.xml"); + } + myCompilerManagerSettings = new ComponentManagerSettingsImpl(file, this); + } + catch (CannotConvertException e) { + LOG.info(e); + return null; + } + } + return myCompilerManagerSettings; + } + @Nullable private Element findGlobalLibraryElement(String name) throws CannotConvertException { final File file = PathManager.getOptionsFile("applicationLibraries");