conversion fixed for gwt facet linked to web facet

This commit is contained in:
nik
2009-10-05 16:07:31 +04:00
parent ef44c022fd
commit 2071cf4582
6 changed files with 40 additions and 11 deletions
@@ -7,12 +7,11 @@ import com.intellij.compiler.ant.Generator;
import com.intellij.compiler.ant.taskdefs.Mkdir;
import com.intellij.compiler.ant.taskdefs.Property;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.packaging.artifacts.Artifact;
import com.intellij.packaging.artifacts.ArtifactManager;
import com.intellij.packaging.elements.ArtifactAntGenerationContext;
import com.intellij.packaging.elements.ArtifactRootElement;
import com.intellij.packaging.impl.artifacts.ArtifactUtil;
import gnu.trove.THashMap;
import gnu.trove.THashSet;
import org.jetbrains.annotations.NonNls;
@@ -40,8 +39,7 @@ public class ArtifactAntGenerationContextImpl implements ArtifactAntGenerationCo
myProject = project;
myGenerationOptions = generationOptions;
for (Artifact artifact : ArtifactManager.getInstance(project).getArtifacts()) {
final String outputPath = artifact.getOutputPath();
if (!StringUtil.isEmpty(outputPath) && artifact.getRootElement() instanceof ArtifactRootElement<?>) {
if (ArtifactUtil.shouldClearArtifactOutputBeforeRebuild(artifact)) {
myArtifactsToClean.add(artifact);
}
}
@@ -1,22 +1,25 @@
package com.intellij.compiler.ant.artifacts;
import com.intellij.compiler.ant.BuildProperties;
import com.intellij.compiler.ant.Comment;
import com.intellij.compiler.ant.GenerationOptions;
import com.intellij.compiler.ant.Generator;
import com.intellij.compiler.ant.Comment;
import com.intellij.compiler.ant.taskdefs.*;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.packaging.impl.artifacts.ArtifactUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.packaging.artifacts.Artifact;
import com.intellij.packaging.artifacts.ArtifactManager;
import com.intellij.packaging.elements.ComplexPackagingElement;
import com.intellij.packaging.elements.CompositePackagingElement;
import com.intellij.packaging.elements.PackagingElement;
import com.intellij.packaging.elements.PackagingElementResolvingContext;
import com.intellij.packaging.impl.artifacts.ArtifactUtil;
import com.intellij.packaging.impl.artifacts.PackagingElementProcessor;
import com.intellij.packaging.impl.elements.ArtifactPackagingElement;
import com.intellij.packaging.impl.elements.ModuleOutputPackagingElement;
import com.intellij.util.Processor;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
@@ -96,9 +99,14 @@ public class ArtifactsGenerator {
private Target createArtifactTarget(Artifact artifact) {
final StringBuilder depends = new StringBuilder(INIT_ARTIFACTS_TARGET);
//todo[nik] do not process content of included artifacts
ArtifactUtil.processPackagingElements(artifact, null, new Processor<PackagingElement<?>>() {
public boolean process(PackagingElement<?> packagingElement) {
ArtifactUtil.processPackagingElements(artifact, null, new PackagingElementProcessor<PackagingElement<?>>() {
@Override
public boolean shouldProcessSubstitution(ComplexPackagingElement<?> element) {
return !(element instanceof ArtifactPackagingElement);
}
@Override
public boolean process(@NotNull List<CompositePackagingElement<?>> parents, @NotNull PackagingElement<?> packagingElement) {
if (packagingElement instanceof ArtifactPackagingElement) {
final Artifact included = ((ArtifactPackagingElement)packagingElement).findArtifact(myResolvingContext);
if (included != null) {
@@ -475,4 +475,9 @@ public class ArtifactUtil {
element.removeChildren(toRemove);
}
public static boolean shouldClearArtifactOutputBeforeRebuild(Artifact artifact) {
final String outputPath = artifact.getOutputPath();
return !StringUtil.isEmpty(outputPath) && artifact.getRootElement() instanceof ArtifactRootElement<?>;
}
}