modification tracker for artifacts

This commit is contained in:
Nikolay Chashnikov
2009-09-18 13:43:11 +04:00
parent c2677779d5
commit 86d9e7f471
2 changed files with 16 additions and 0 deletions
@@ -6,6 +6,7 @@ import com.intellij.openapi.application.WriteAction;
import com.intellij.openapi.components.*;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.ModificationTracker;
import com.intellij.openapi.util.Pair;
import com.intellij.packaging.artifacts.*;
import com.intellij.packaging.elements.*;
@@ -41,6 +42,12 @@ public class ArtifactManagerImpl extends ArtifactManager implements ProjectCompo
private boolean myInsideCommit = false;
@NonNls public static final String PACKAGING_ELEMENT_NAME = "element";
@NonNls public static final String TYPE_ID_ATTRIBUTE = "id";
private long myModificationCount;
private final ModificationTracker myModificationTracker = new ModificationTracker() {
public long getModificationCount() {
return myModificationCount;
}
};
public ArtifactManagerImpl(Project project) {
myProject = project;
@@ -235,6 +242,7 @@ public class ArtifactManagerImpl extends ArtifactManager implements ProjectCompo
}
myModel.setArtifactsList(allArtifacts);
myModificationCount++;
final ArtifactListener publisher = myProject.getMessageBus().syncPublisher(TOPIC);
for (ArtifactImpl artifact : added) {
publisher.artifactAdded(artifact);
@@ -283,6 +291,11 @@ public class ArtifactManagerImpl extends ArtifactManager implements ProjectCompo
}.execute();
}
@Override
public ModificationTracker getModificationTracker() {
return myModificationTracker;
}
private static class ArtifactManagerModel extends ArtifactModelBase {
private List<ArtifactImpl> myArtifactsList = new ArrayList<ArtifactImpl>();
@@ -3,6 +3,7 @@ package com.intellij.packaging.artifacts;
import com.intellij.openapi.application.ex.ApplicationManagerEx;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.ModificationTracker;
import com.intellij.packaging.elements.CompositePackagingElement;
import com.intellij.packaging.elements.PackagingElement;
import com.intellij.packaging.elements.PackagingElementResolvingContext;
@@ -33,6 +34,8 @@ public abstract class ArtifactManager implements ArtifactModel {
public abstract void addElementsToDirectory(@NotNull Artifact artifact, @NotNull String relativePath,
@NotNull Collection<? extends PackagingElement<?>> elements);
public abstract ModificationTracker getModificationTracker();
public static boolean useArtifactsForDeployment() {
return Boolean.parseBoolean(System.getProperty("idea.use.artifacts.for.deployment"));
}