From 86d9e7f4718207b3453c6fbd11da5579bcbdca70 Mon Sep 17 00:00:00 2001 From: Nikolay Chashnikov Date: Fri, 18 Sep 2009 13:43:11 +0400 Subject: [PATCH] modification tracker for artifacts --- .../packaging/impl/artifacts/ArtifactManagerImpl.java | 13 +++++++++++++ .../com/intellij/packaging/artifacts/ArtifactManager.java | 3 +++ 2 files changed, 16 insertions(+) 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 74114342ee..8896b15987 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 @@ -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 myArtifactsList = new ArrayList(); diff --git a/java/compiler/openapi/src/com/intellij/packaging/artifacts/ArtifactManager.java b/java/compiler/openapi/src/com/intellij/packaging/artifacts/ArtifactManager.java index c29c00c000..53eb834d4b 100644 --- a/java/compiler/openapi/src/com/intellij/packaging/artifacts/ArtifactManager.java +++ b/java/compiler/openapi/src/com/intellij/packaging/artifacts/ArtifactManager.java @@ -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> elements); + public abstract ModificationTracker getModificationTracker(); + public static boolean useArtifactsForDeployment() { return Boolean.parseBoolean(System.getProperty("idea.use.artifacts.for.deployment")); } -- 2.11.4.GIT