diff --git a/platform/core-impl/src/com/intellij/openapi/components/impl/ComponentManagerImpl.java b/platform/core-impl/src/com/intellij/openapi/components/impl/ComponentManagerImpl.java
index e7b6c7c414d4..e0282038f75c 100644
--- a/platform/core-impl/src/com/intellij/openapi/components/impl/ComponentManagerImpl.java
+++ b/platform/core-impl/src/com/intellij/openapi/components/impl/ComponentManagerImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2015 JetBrains s.r.o.
+ * Copyright 2000-2016 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.
@@ -30,7 +30,10 @@ import com.intellij.openapi.progress.ProcessCanceledException;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.util.*;
+import com.intellij.openapi.util.Comparing;
+import com.intellij.openapi.util.Condition;
+import com.intellij.openapi.util.Disposer;
+import com.intellij.openapi.util.UserDataHolderBase;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.ArrayUtil;
import com.intellij.util.ReflectionUtil;
@@ -49,6 +52,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import static com.intellij.openapi.extensions.Extensions.isComponentSuitableForOs;
+
public abstract class ComponentManagerImpl extends UserDataHolderBase implements ComponentManagerEx, Disposable {
private static final Logger LOG = Logger.getInstance("#com.intellij.components.ComponentManager");
@@ -272,32 +277,6 @@ public abstract class ComponentManagerImpl extends UserDataHolderBase implements
(!Boolean.parseBoolean(options.get("internal")) || ApplicationManager.getApplication().isInternal());
}
- static boolean isComponentSuitableForOs(@Nullable String os) {
- if (StringUtil.isEmpty(os)) {
- return true;
- }
-
- if (os.equals("mac")) {
- return SystemInfoRt.isMac;
- }
- else if (os.equals("linux")) {
- return SystemInfoRt.isLinux;
- }
- else if (os.equals("windows")) {
- return SystemInfoRt.isWindows;
- }
- else if (os.equals("unix")) {
- return SystemInfoRt.isUnix;
- }
- else if (os.equals("freebsd")) {
- return SystemInfoRt.isFreeBSD;
- }
- else {
- LOG.warn("Unknown OS " + os);
- return true;
- }
- }
-
@Override
public void dispose() {
ApplicationManager.getApplication().assertIsDispatchThread();
diff --git a/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java b/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java
index ad57d231c27f..5191813b88bb 100644
--- a/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java
+++ b/platform/extensions/src/com/intellij/openapi/extensions/Extensions.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2015 JetBrains s.r.o.
+ * Copyright 2000-2016 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.
@@ -18,6 +18,8 @@ package com.intellij.openapi.extensions;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.extensions.impl.ExtensionsAreaImpl;
import com.intellij.openapi.util.Disposer;
+import com.intellij.openapi.util.SystemInfoRt;
+import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -243,4 +245,30 @@ public class Extensions {
t.printStackTrace();
}
}
+
+ public static boolean isComponentSuitableForOs(@Nullable String os) {
+ if (StringUtil.isEmpty(os)) {
+ return true;
+ }
+
+ if (os.equals("mac")) {
+ return SystemInfoRt.isMac;
+ }
+ else if (os.equals("linux")) {
+ return SystemInfoRt.isLinux;
+ }
+ else if (os.equals("windows")) {
+ return SystemInfoRt.isWindows;
+ }
+ else if (os.equals("unix")) {
+ return SystemInfoRt.isUnix;
+ }
+ else if (os.equals("freebsd")) {
+ return SystemInfoRt.isFreeBSD;
+ }
+ else {
+ ourLogger.warn("Unknown OS " + os);
+ return true;
+ }
+ }
}
diff --git a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java
index 7e7a8e7b019d..90c2d9d1f07a 100644
--- a/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java
+++ b/platform/extensions/src/com/intellij/openapi/extensions/impl/ExtensionsAreaImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2015 JetBrains s.r.o.
+ * Copyright 2000-2016 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.
@@ -32,6 +32,8 @@ import org.picocontainer.PicoContainer;
import java.util.*;
+import static com.intellij.openapi.extensions.Extensions.isComponentSuitableForOs;
+
@SuppressWarnings({"HardCodedStringLiteral"})
public class ExtensionsAreaImpl implements ExtensionsArea {
private final LogProvider myLogger;
@@ -137,6 +139,10 @@ public class ExtensionsAreaImpl implements ExtensionsArea {
public void registerExtension(@NotNull final PluginDescriptor pluginDescriptor, @NotNull final Element extensionElement) {
final PluginId pluginId = pluginDescriptor.getPluginId();
+ if (!isComponentSuitableForOs(extensionElement.getAttributeValue("os"))) {
+ return;
+ }
+
String epName = extractEPName(extensionElement);
ExtensionComponentAdapter adapter;
diff --git a/platform/platform-impl/src/com/intellij/ide/passwordSafe/macOsKeychainLibrary.kt b/platform/platform-impl/src/com/intellij/ide/passwordSafe/macOsKeychainLibrary.kt
index 33bc1b76f22b..c6d7a7047a91 100644
--- a/platform/platform-impl/src/com/intellij/ide/passwordSafe/macOsKeychainLibrary.kt
+++ b/platform/platform-impl/src/com/intellij/ide/passwordSafe/macOsKeychainLibrary.kt
@@ -17,13 +17,14 @@ package com.intellij.ide.passwordSafe.macOs
import com.intellij.ide.passwordSafe.LOG
import com.intellij.openapi.util.SystemInfo
+import com.sun.jna.Native
import com.sun.jna.Pointer
val isMacOsCredentialStoreSupported: Boolean
get() = SystemInfo.isMacIntel64 && SystemInfo.isMacOSLeopard
private val LIBRARY by lazy {
- com.sun.jna.Native.loadLibrary("Security", MacOsKeychainLibrary::class.java) as MacOsKeychainLibrary
+ Native.loadLibrary("Security", MacOsKeychainLibrary::class.java) as MacOsKeychainLibrary
}
fun saveGenericPassword(serviceName: ByteArray, accountName: String, password: String) {
diff --git a/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java
index 49243b5870e7..ee5e0d11e7d3 100644
--- a/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java
+++ b/platform/platform-impl/src/com/intellij/openapi/components/impl/ServiceManagerImpl.java
@@ -80,7 +80,7 @@ public class ServiceManagerImpl implements BaseComponent {
}
}
- if (!ComponentManagerImpl.isComponentSuitableForOs(descriptor.os)) {
+ if (!Extensions.isComponentSuitableForOs(descriptor.os)) {
return;
}
diff --git a/platform/platform-resources/src/META-INF/PlatformExtensions.xml b/platform/platform-resources/src/META-INF/PlatformExtensions.xml
index e2cbc37766fd..46d115378e82 100644
--- a/platform/platform-resources/src/META-INF/PlatformExtensions.xml
+++ b/platform/platform-resources/src/META-INF/PlatformExtensions.xml
@@ -444,6 +444,6 @@
-
+