From 81455293577388a95e1df7e82ec8944f721cf9db Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 26 Dec 2012 13:22:47 +0400 Subject: [PATCH] ensure that library kinds are registered before first library is loaded (IDEA-98118) --- .../impl/libraries/LibraryKindLoader.java | 42 +++++++++++++++++++ .../src/componentSets/Lang.xml | 3 ++ 2 files changed, 45 insertions(+) create mode 100644 platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryKindLoader.java diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryKindLoader.java b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryKindLoader.java new file mode 100644 index 000000000000..e52f2164ed9b --- /dev/null +++ b/platform/lang-impl/src/com/intellij/openapi/roots/impl/libraries/LibraryKindLoader.java @@ -0,0 +1,42 @@ +/* + * Copyright 2000-2012 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.roots.impl.libraries; + +import com.intellij.openapi.components.ApplicationComponent; +import com.intellij.openapi.roots.libraries.LibraryType; +import org.jetbrains.annotations.NotNull; + +/** + * @author nik + */ +public class LibraryKindLoader implements ApplicationComponent { + @Override + public void initComponent() { + //todo[nik] this is temporary workaround for IDEA-98118: we need to initialize all library types to ensure that their kinds are created and registered in LibraryKind.ourAllKinds + //In order to properly fix the problem we should extract all UI-related methods from LibraryType to a separate class and move LibraryType to projectModel-impl module + LibraryType.EP_NAME.getExtensions(); + } + + @Override + public void disposeComponent() { + } + + @NotNull + @Override + public String getComponentName() { + return "LibraryKindLoader"; + } +} diff --git a/platform/platform-resources/src/componentSets/Lang.xml b/platform/platform-resources/src/componentSets/Lang.xml index 3734f89316eb..407cc4b049ce 100644 --- a/platform/platform-resources/src/componentSets/Lang.xml +++ b/platform/platform-resources/src/componentSets/Lang.xml @@ -30,6 +30,9 @@ com.intellij.psi.stubs.SerializationManagerImpl + + com.intellij.openapi.roots.impl.libraries.LibraryKindLoader +