IDEA-55657 & other repository attach fixes

This commit is contained in:
Gregory Shrago
2010-06-17 16:14:00 +04:00
parent c23973c02a
commit d008fa0335
5 changed files with 21 additions and 7 deletions
@@ -26,6 +26,8 @@ import java.util.Collection;
import java.util.List;
public interface MavenFacade extends Remote {
void ping() throws RemoteException;
void set(MavenFacadeLogger logger, MavenFacadeDownloadListener downloadListener) throws RemoteException;
MavenFacadeEmbedder createEmbedder(MavenFacadeSettings settings) throws RemoteException;
@@ -36,6 +36,11 @@ import java.util.Collection;
import java.util.List;
public class MavenFacadeImpl extends RemoteObject implements MavenFacade {
@Override
public void ping() throws RemoteException {
// no op
}
public void set(MavenFacadeLogger logger, MavenFacadeDownloadListener downloadListener) throws RemoteException {
try {
MavenFacadeGlobalsManager.set(logger, downloadListener);
@@ -114,11 +114,19 @@ public class MavenFacadeManager {
}
private synchronized MavenFacade getFacade() {
if (myFacade == null) {
try {
myFacade.ping();
}
catch (Exception ex) {
try {
if (myFacade == null) {
UnicastRemoteObject.exportObject(myLogger, 0);
UnicastRemoteObject.exportObject(myDownloadListener, 0);
}
else {
// todo [anton] if myFacade != null reinit
}
myFacade = mySupport.acquire(this, "");
UnicastRemoteObject.exportObject(myLogger, 0);
UnicastRemoteObject.exportObject(myDownloadListener, 0);
myFacade.set(myLogger, myDownloadListener);
}
catch (Exception e) {
@@ -74,7 +74,7 @@ public class MavenProjectsManager extends SimpleProjectComponent
private MavenProjectsManagerState myState = new MavenProjectsManagerState();
private MavenEmbeddersManager myEmbeddersManager;
private final MavenEmbeddersManager myEmbeddersManager;
private MavenProjectsTree myProjectsTree;
private MavenProjectsManagerWatcher myWatcher;
@@ -103,6 +103,7 @@ public class MavenProjectsManager extends SimpleProjectComponent
public MavenProjectsManager(Project project) {
super(project);
myEmbeddersManager = new MavenEmbeddersManager(myProject);
}
public MavenProjectsManagerState getState() {
@@ -239,8 +240,6 @@ public class MavenProjectsManager extends SimpleProjectComponent
}
private void initWorkers() {
myEmbeddersManager = new MavenEmbeddersManager(myProject);
myReadingProcessor = new MavenProjectsProcessor(myProject, ProjectBundle.message("maven.reading"), false, myEmbeddersManager);
myResolvingProcessor = new MavenProjectsProcessor(myProject, ProjectBundle.message("maven.resolving"), true, myEmbeddersManager);
myPluginsResolvingProcessor =
@@ -331,7 +331,7 @@ public class RepositoryAttachDialog extends DialogWrapper {
}
else {
final Pair<MavenArtifactInfo, MavenRepositoryInfo> artifactAndRepo = myCoordinates.get(getCoordinateText());
final MavenRepositoryInfo repository = artifactAndRepo.second;
final MavenRepositoryInfo repository = artifactAndRepo == null? null : artifactAndRepo.second;
return repository != null? Collections.singletonList(repository) : ContainerUtil.findAll(myRepositories.values(), Condition.NOT_NULL);
}
}