mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
fixed updating resource in running app server when more than one artifact is changed
This commit is contained in:
@@ -23,6 +23,7 @@ import com.intellij.openapi.util.Key;
|
||||
import com.intellij.packaging.artifacts.Artifact;
|
||||
import com.intellij.util.io.DataExternalizer;
|
||||
import com.intellij.util.io.KeyDescriptor;
|
||||
import gnu.trove.THashSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -45,6 +46,19 @@ public class ArtifactsCompiler extends GenericCompiler<String, VirtualFilePersis
|
||||
return compilers.length == 1 ? compilers[0] : null;
|
||||
}
|
||||
|
||||
static void setAffectedArtifacts(final CompileContext context, Set<Artifact> artifacts) {
|
||||
context.putUserData(AFFECTED_ARTIFACTS, artifacts);
|
||||
}
|
||||
|
||||
static void addWrittenPaths(final CompileContext context, Set<String> writtenPaths) {
|
||||
Set<String> paths = context.getUserData(WRITTEN_PATHS_KEY);
|
||||
if (paths == null) {
|
||||
paths = new THashSet<String>();
|
||||
context.putUserData(WRITTEN_PATHS_KEY, paths);
|
||||
}
|
||||
paths.addAll(writtenPaths);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public KeyDescriptor<String> getItemKeyDescriptor() {
|
||||
@@ -75,6 +89,7 @@ public class ArtifactsCompiler extends GenericCompiler<String, VirtualFilePersis
|
||||
return "Artifacts Packaging Compiler";
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static Set<Artifact> getAffectedArtifacts(final CompileContext compileContext) {
|
||||
return compileContext.getUserData(AFFECTED_ARTIFACTS);
|
||||
}
|
||||
|
||||
+3
-3
@@ -112,7 +112,7 @@ public class ArtifactsCompilerInstance extends GenericCompilerInstance<ArtifactB
|
||||
targets.add(new ArtifactBuildTarget(artifact));
|
||||
}
|
||||
if (selectedOnly) {
|
||||
myContext.putUserData(ArtifactsCompiler.AFFECTED_ARTIFACTS, artifacts);
|
||||
ArtifactsCompiler.setAffectedArtifacts(ArtifactsCompilerInstance.this.myContext, artifacts);
|
||||
}
|
||||
}
|
||||
}.execute();
|
||||
@@ -285,7 +285,7 @@ public class ArtifactsCompilerInstance extends GenericCompilerInstance<ArtifactB
|
||||
}
|
||||
|
||||
private void onBuildStartedOrFinished(final boolean finished) throws Exception {
|
||||
final Set<Artifact> artifacts = myContext.getUserData(ArtifactsCompiler.AFFECTED_ARTIFACTS);
|
||||
final Set<Artifact> artifacts = ArtifactsCompiler.getAffectedArtifacts(myContext);
|
||||
if (artifacts != null) {
|
||||
for (Artifact artifact : artifacts) {
|
||||
for (ArtifactPropertiesProvider provider : artifact.getPropertiesProviders()) {
|
||||
@@ -335,7 +335,7 @@ public class ArtifactsCompilerInstance extends GenericCompilerInstance<ArtifactB
|
||||
for (ArtifactCompilerCompileItem item : processedItems) {
|
||||
consumer.addProcessedItem(item);
|
||||
}
|
||||
myContext.putUserData(ArtifactsCompiler.WRITTEN_PATHS_KEY, writtenPaths);
|
||||
ArtifactsCompiler.addWrittenPaths(myContext, writtenPaths);
|
||||
}
|
||||
|
||||
private THashSet<String> deleteFiles(List<GenericCompilerCacheState<String, VirtualFilePersistentState, ArtifactPackagingItemOutputState>> obsoleteItems,
|
||||
|
||||
Reference in New Issue
Block a user