diff --git a/platform/platform-resources/src/META-INF/VcsExtensionPoints.xml b/platform/platform-resources/src/META-INF/VcsExtensionPoints.xml
index f89219a978e6..ce3564a6e77a 100644
--- a/platform/platform-resources/src/META-INF/VcsExtensionPoints.xml
+++ b/platform/platform-resources/src/META-INF/VcsExtensionPoints.xml
@@ -15,8 +15,7 @@
area="IDEA_PROJECT"/>
+ interface="com.intellij.openapi.vcs.checkin.VcsCheckinHandlerFactory"/>
+
+
diff --git a/platform/platform-resources/src/componentSets/VCS.xml b/platform/platform-resources/src/componentSets/VCS.xml
index 429bcee9a433..73936db330fd 100644
--- a/platform/platform-resources/src/componentSets/VCS.xml
+++ b/platform/platform-resources/src/componentSets/VCS.xml
@@ -22,12 +22,6 @@
com.intellij.openapi.vcs.changes.VcsChangeDetailsManager
-
- com.intellij.openapi.vcs.impl.CheckinHandlersManager
- com.intellij.openapi.vcs.impl.CheckinHandlersManagerImpl
- com.intellij.openapi.vcs.impl.Dummy
-
-
com.intellij.openapi.vcs.impl.VcsDirectoryMappingStorage
diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/impl/CheckinHandlersManager.java b/platform/vcs-api/src/com/intellij/openapi/vcs/impl/CheckinHandlersManager.java
index 1f384e69fa2b..425707f392fa 100644
--- a/platform/vcs-api/src/com/intellij/openapi/vcs/impl/CheckinHandlersManager.java
+++ b/platform/vcs-api/src/com/intellij/openapi/vcs/impl/CheckinHandlersManager.java
@@ -38,8 +38,9 @@ public abstract class CheckinHandlersManager {
* VCS checkin operations.
*
* @return the list of registered factories.
+ * @param allActiveVcss
*/
- public abstract List getRegisteredCheckinHandlerFactories();
+ public abstract List getRegisteredCheckinHandlerFactories(AbstractVcs[] allActiveVcss);
public abstract List getMatchingVcsFactories(@NotNull final List keys);
/**
diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/impl/Dummy.java b/platform/vcs-api/src/com/intellij/openapi/vcs/impl/Dummy.java
deleted file mode 100644
index 5fda349ff298..000000000000
--- a/platform/vcs-api/src/com/intellij/openapi/vcs/impl/Dummy.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2000-2011 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.vcs.impl;
-
-import com.intellij.openapi.vcs.AbstractVcs;
-import com.intellij.openapi.vcs.checkin.BaseCheckinHandlerFactory;
-import com.intellij.openapi.vcs.checkin.VcsCheckinHandlerFactory;
-import org.jetbrains.annotations.NotNull;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
-* User: cdr
-*/
-public class Dummy extends CheckinHandlersManager {
- @Override
- public List getRegisteredCheckinHandlerFactories() {
- return Collections.emptyList();
- }
-
- @Override
- public List getMatchingVcsFactories(@NotNull List keys) {
- return Collections.emptyList();
- }
-
- @Override
- public void registerCheckinHandlerFactory(BaseCheckinHandlerFactory factory) {
- }
-
- @Override
- public void unregisterCheckinHandlerFactory(BaseCheckinHandlerFactory handler) {
- }
-}
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java
index a7a20483810f..c78a7cbfb11d 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/CommitChangeListDialog.java
@@ -367,7 +367,8 @@ public class CommitChangeListDialog extends DialogWrapper implements CheckinProj
boolean afterVisible = false;
Box beforeBox = Box.createVerticalBox();
Box afterBox = Box.createVerticalBox();
- final List handlerFactories = CheckinHandlersManager.getInstance(myProject).getRegisteredCheckinHandlerFactories();
+ final List handlerFactories = CheckinHandlersManager.getInstance(myProject).getRegisteredCheckinHandlerFactories(
+ ProjectLevelVcsManager.getInstance(project).getAllActiveVcss());
for (BaseCheckinHandlerFactory factory : handlerFactories) {
final CheckinHandler handler = factory.createHandler(this, myCommitContext);
if (CheckinHandler.DUMMY.equals(handler)) continue;
diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/CheckinHandlersManagerImpl.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/CheckinHandlersManagerImpl.java
index 053af4e2f089..ec8702ca0e54 100644
--- a/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/CheckinHandlersManagerImpl.java
+++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/impl/CheckinHandlersManagerImpl.java
@@ -16,11 +16,7 @@
package com.intellij.openapi.vcs.impl;
import com.intellij.openapi.extensions.Extensions;
-import com.intellij.openapi.project.DumbAwareRunnable;
-import com.intellij.openapi.project.Project;
-import com.intellij.openapi.startup.StartupManager;
import com.intellij.openapi.vcs.AbstractVcs;
-import com.intellij.openapi.vcs.ProjectLevelVcsManager;
import com.intellij.openapi.vcs.VcsKey;
import com.intellij.openapi.vcs.checkin.BaseCheckinHandlerFactory;
import com.intellij.openapi.vcs.checkin.CheckinHandlerFactory;
@@ -42,37 +38,27 @@ import java.util.List;
public class CheckinHandlersManagerImpl extends CheckinHandlersManager {
private final List myRegisteredBeforeCheckinHandlers;
private final MultiMap myVcsMap;
- private final Project myProject;
- private final ProjectLevelVcsManager myVcsManager;
- public CheckinHandlersManagerImpl(final Project project, final ProjectLevelVcsManager vcsManager) {
- myProject = project;
- myVcsManager = vcsManager;
+ public CheckinHandlersManagerImpl() {
myVcsMap = new MultiMap();
myRegisteredBeforeCheckinHandlers = new ArrayList();
- StartupManager.getInstance(myProject).runWhenProjectIsInitialized(new DumbAwareRunnable() {
- @Override
- public void run() {
- myRegisteredBeforeCheckinHandlers
- .addAll(Arrays.asList(Extensions.getExtensions(CheckinHandlerFactory.EP_NAME)));
- final VcsCheckinHandlerFactory[] vcsCheckinHandlerFactories = Extensions.getExtensions(VcsCheckinHandlerFactory.EP_NAME, myProject);
- for (VcsCheckinHandlerFactory factory : vcsCheckinHandlerFactories) {
- myVcsMap.putValue(factory.getKey(), factory);
- }
- }
- });
+ myRegisteredBeforeCheckinHandlers
+ .addAll(Arrays.asList(Extensions.getExtensions(CheckinHandlerFactory.EP_NAME)));
+ final VcsCheckinHandlerFactory[] vcsCheckinHandlerFactories = Extensions.getExtensions(VcsCheckinHandlerFactory.EP_NAME);
+ for (VcsCheckinHandlerFactory factory : vcsCheckinHandlerFactories) {
+ myVcsMap.putValue(factory.getKey(), factory);
+ }
}
@Override
- public List getRegisteredCheckinHandlerFactories() {
- final AbstractVcs[] allActiveVcss = myVcsManager.getAllActiveVcss();
+ public List getRegisteredCheckinHandlerFactories(AbstractVcs[] allActiveVcss) {
final ArrayList list =
new ArrayList(myRegisteredBeforeCheckinHandlers.size() + allActiveVcss.length);
list.addAll(myRegisteredBeforeCheckinHandlers);
for (AbstractVcs vcs : allActiveVcss) {
final Collection factories = myVcsMap.get(vcs.getKeyInstanceMethod());
- if (factories != null && ! factories.isEmpty()) {
+ if (! factories.isEmpty()) {
list.addAll(factories);
}
}
@@ -84,7 +70,7 @@ public class CheckinHandlersManagerImpl extends CheckinHandlersManager {
final SmartList result = new SmartList();
for (AbstractVcs vcs : vcsList) {
final Collection factories = myVcsMap.get(vcs.getKeyInstanceMethod());
- if (factories != null && ! factories.isEmpty()) {
+ if (! factories.isEmpty()) {
result.addAll(factories);
}
}