JpsJavaCompilerConfigurationSerializer — add default DEFAULT_WILDCARD_PATTERNS if...
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Mon, 18 Jul 2016 16:17:38 +0000 (18:17 +0200)
committerVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Mon, 18 Jul 2016 16:20:03 +0000 (18:20 +0200)
java/compiler/impl/src/com/intellij/compiler/CompilerConfigurationImpl.java
jps/model-serialization/src/org/jetbrains/jps/model/serialization/java/compiler/JpsJavaCompilerConfigurationSerializer.java

index 6dbe74da781d61401ebbdecb133e8887596114a1..5185e48d5dfb753c02f61ed09377d81ebc7b2ee7 100644 (file)
@@ -70,15 +70,14 @@ import org.jetbrains.jps.model.serialization.java.compiler.JpsJavaCompilerConfig
 import java.io.File;
 import java.util.*;
 
+import static org.jetbrains.jps.model.serialization.java.compiler.JpsJavaCompilerConfigurationSerializer.DEFAULT_WILDCARD_PATTERNS;
+
 @State(name = "CompilerConfiguration", storages = @Storage("compiler.xml"))
 public class CompilerConfigurationImpl extends CompilerConfiguration implements PersistentStateComponent<Element>, ProjectComponent {
   private static final Logger LOG = Logger.getInstance("#com.intellij.compiler.CompilerConfiguration");
   public static final String TESTS_EXTERNAL_COMPILER_HOME_PROPERTY_NAME = "tests.external.compiler.home";
   public static final int DEFAULT_BUILD_PROCESS_HEAP_SIZE = 700;
 
-  private static final List<String> DEFAULT_WILDCARD_PATTERNS =
-    Arrays.asList("!?*.java", "!?*.form", "!?*.class", "!?*.groovy", "!?*.scala", "!?*.flex", "!?*.kt", "!?*.clj", "!?*.aj");
-
   private BackendCompiler myDefaultJavaCompiler;
   private State myState = new State();
 
index d1f6d058ad2d15a63e0a3bebabd59f071d4f89be..b3ad53b84d8afd31ad6f5cd5b09c18bb0dd9a1f6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2012 JetBrains s.r.o.
+ * Copyright 2000-2016 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,6 +26,7 @@ import org.jetbrains.jps.model.java.compiler.JpsCompilerExcludes;
 import org.jetbrains.jps.model.java.compiler.JpsJavaCompilerConfiguration;
 import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer;
 
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -44,6 +45,9 @@ public class JpsJavaCompilerConfigurationSerializer extends JpsProjectExtensionS
   public static final String MODULE = "module";
   public static final String TARGET_ATTRIBUTE = "target";
 
+  public static final List<String> DEFAULT_WILDCARD_PATTERNS =
+    Arrays.asList("!?*.java", "!?*.form", "!?*.class", "!?*.groovy", "!?*.scala", "!?*.flex", "!?*.kt", "!?*.clj", "!?*.aj");
+
   public JpsJavaCompilerConfigurationSerializer() {
     super("compiler.xml", "CompilerConfiguration");
   }
@@ -59,12 +63,19 @@ public class JpsJavaCompilerConfigurationSerializer extends JpsProjectExtensionS
     readExcludes(componentTag.getChild(EXCLUDE_FROM_COMPILE), configuration.getCompilerExcludes());
 
     Element resourcePatternsTag = componentTag.getChild(WILDCARD_RESOURCE_PATTERNS);
-    for (Element entry : JDOMUtil.getChildren(resourcePatternsTag, ENTRY)) {
-      String pattern = entry.getAttributeValue(NAME);
-      if (!StringUtil.isEmpty(pattern)) {
+    if (resourcePatternsTag == null) {
+      for (String pattern : DEFAULT_WILDCARD_PATTERNS) {
         configuration.addResourcePattern(pattern);
       }
     }
+    else {
+      for (Element entry : resourcePatternsTag.getChildren(ENTRY)) {
+        String pattern = entry.getAttributeValue(NAME);
+        if (!StringUtil.isEmpty(pattern)) {
+          configuration.addResourcePattern(pattern);
+        }
+      }
+    }
 
     Element annotationProcessingTag = componentTag.getChild(ANNOTATION_PROCESSING);
     if (annotationProcessingTag != null) {
@@ -97,6 +108,14 @@ public class JpsJavaCompilerConfigurationSerializer extends JpsProjectExtensionS
     }
   }
 
+  @Override
+  public void loadExtensionWithDefaultSettings(@NotNull JpsProject project) {
+    JpsJavaCompilerConfiguration configuration = JpsJavaExtensionService.getInstance().getOrCreateCompilerConfiguration(project);
+    for (String pattern : DEFAULT_WILDCARD_PATTERNS) {
+      configuration.addResourcePattern(pattern);
+    }
+  }
+
   public static void readExcludes(Element excludeFromCompileTag, JpsCompilerExcludes excludes) {
     if (excludeFromCompileTag != null) {
       for (Element fileTag : JDOMUtil.getChildren(excludeFromCompileTag, "file")) {