From 9e9f4e85585de2bd0e5b3d5efe6cca1b9f8a3d7f Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 7 Oct 2009 10:32:35 +0400 Subject: [PATCH] artifact fixes --- .../impl/artifacts/ArtifactManagerImpl.java | 18 ++++++++++++++++-- .../impl/artifacts/ArtifactPointerImpl.java | 6 ------ .../artifacts/ArtifactPointerManagerImpl.java | 10 +++++++++- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactManagerImpl.java b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactManagerImpl.java index 4693a530954f..eabafecd94d2 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactManagerImpl.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactManagerImpl.java @@ -41,6 +41,7 @@ public class ArtifactManagerImpl extends ArtifactManager implements ProjectCompo private final Project myProject; private final DefaultPackagingElementResolvingContext myResolvingContext; private boolean myInsideCommit = false; + private boolean myLoaded; private long myModificationCount; private final ModificationTracker myModificationTracker = new ModificationTracker() { public long getModificationCount() { @@ -164,7 +165,16 @@ public class ArtifactManagerImpl extends ArtifactManager implements ProjectCompo } artifacts.add(artifact); } - myModel.setArtifactsList(artifacts); + + if (myLoaded) { + final ArtifactModelImpl model = new ArtifactModelImpl(this); + model.addArtifacts(artifacts); + doCommit(model); + } + else { + myModel.setArtifactsList(artifacts); + myLoaded = true; + } } private static void deserializeProperties(ArtifactProperties artifactProperties, ArtifactPropertiesState propertiesState) { @@ -249,8 +259,12 @@ public class ArtifactManagerImpl extends ArtifactManager implements ProjectCompo public void commit(ArtifactModelImpl artifactModel) { ApplicationManager.getApplication().assertWriteAccessAllowed(); - LOG.assertTrue(!myInsideCommit, "Recursive commit"); + doCommit(artifactModel); + } + + private void doCommit(ArtifactModelImpl artifactModel) { + LOG.assertTrue(!myInsideCommit, "Recursive commit"); myInsideCommit = true; try { diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactPointerImpl.java b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactPointerImpl.java index bc2f17a9e037..dcae8c084216 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactPointerImpl.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactPointerImpl.java @@ -20,12 +20,6 @@ public class ArtifactPointerImpl implements ArtifactPointer { myName = name; } - public ArtifactPointerImpl(@NotNull Project project, @NotNull Artifact artifact) { - myProject = project; - myArtifact = artifact; - myName = artifact.getName(); - } - @NotNull public String getName() { return myName; diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactPointerManagerImpl.java b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactPointerManagerImpl.java index 9caecab44f87..af2d7786f4c1 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactPointerManagerImpl.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/ArtifactPointerManagerImpl.java @@ -4,8 +4,8 @@ import com.intellij.openapi.project.Project; import com.intellij.packaging.artifacts.*; import org.jetbrains.annotations.NotNull; -import java.util.Map; import java.util.HashMap; +import java.util.Map; /** * @author nik @@ -25,6 +25,14 @@ public class ArtifactPointerManagerImpl extends ArtifactPointerManager { } } + @Override + public void artifactAdded(@NotNull Artifact artifact) { + final ArtifactPointerImpl artifactPointer = myPointers.get(artifact.getName()); + if (artifactPointer != null) { + artifactPointer.setArtifact(artifact); + } + } + @Override public void artifactChanged(@NotNull Artifact artifact, @NotNull String oldName) { final ArtifactPointerImpl pointer = myPointers.get(oldName);