summaryrefslogtreecommitdiff
path: root/jps/model-serialization/src/org/jetbrains/jps/model
diff options
context:
space:
mode:
Diffstat (limited to 'jps/model-serialization/src/org/jetbrains/jps/model')
-rw-r--r--jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java2
-rw-r--r--jps/model-serialization/src/org/jetbrains/jps/model/serialization/runConfigurations/JpsRunConfigurationSerializer.java11
-rw-r--r--jps/model-serialization/src/org/jetbrains/jps/model/serialization/runConfigurations/JpsUnknownRunConfigurationType.java37
3 files changed, 46 insertions, 4 deletions
diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java
index 3b5a5e4a707e..81b0c8298813 100644
--- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java
+++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/JpsProjectLoader.java
@@ -134,7 +134,7 @@ public class JpsProjectLoader extends JpsLoaderBase {
artifactsTimingLog.run();
if (hasRunConfigurationSerializers()) {
- Runnable runConfTimingLog = TimingLog.startActivity("loading artifacts");
+ Runnable runConfTimingLog = TimingLog.startActivity("loading run configurations");
for (File configurationFile : listXmlFiles(new File(dir, "runConfigurations"))) {
JpsRunConfigurationSerializer.loadRunConfigurations(myProject, loadRootElement(configurationFile));
}
diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/runConfigurations/JpsRunConfigurationSerializer.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/runConfigurations/JpsRunConfigurationSerializer.java
index 6e619dc4c88c..b20ddf0ff9ae 100644
--- a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/runConfigurations/JpsRunConfigurationSerializer.java
+++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/runConfigurations/JpsRunConfigurationSerializer.java
@@ -21,6 +21,7 @@ import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jps.model.JpsElement;
+import org.jetbrains.jps.model.JpsElementFactory;
import org.jetbrains.jps.model.JpsProject;
import org.jetbrains.jps.model.serialization.JpsModelSerializerExtension;
@@ -45,17 +46,21 @@ public class JpsRunConfigurationSerializer {
String typeId = configurationTag.getAttributeValue("type");
JpsRunConfigurationPropertiesSerializer<?> serializer = serializers.get(typeId);
+ String name = configurationTag.getAttributeValue("name");
if (serializer != null) {
- loadRunConfiguration(configurationTag, serializer, project);
+ loadRunConfiguration(name, configurationTag, serializer, project);
+ }
+ else {
+ project.addRunConfiguration(name, new JpsUnknownRunConfigurationType(typeId), JpsElementFactory.getInstance().createDummyElement());
}
}
}
- private static <P extends JpsElement> void loadRunConfiguration(Element configurationTag,
+ private static <P extends JpsElement> void loadRunConfiguration(final String name, Element configurationTag,
JpsRunConfigurationPropertiesSerializer<P> serializer,
JpsProject project) {
P properties = serializer.loadProperties(configurationTag);
- project.addRunConfiguration(configurationTag.getAttributeValue("name"), serializer.getType(), properties);
+ project.addRunConfiguration(name, serializer.getType(), properties);
}
}
diff --git a/jps/model-serialization/src/org/jetbrains/jps/model/serialization/runConfigurations/JpsUnknownRunConfigurationType.java b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/runConfigurations/JpsUnknownRunConfigurationType.java
new file mode 100644
index 000000000000..ea666571b3f9
--- /dev/null
+++ b/jps/model-serialization/src/org/jetbrains/jps/model/serialization/runConfigurations/JpsUnknownRunConfigurationType.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2000-2014 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jetbrains.jps.model.serialization.runConfigurations;
+
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.jps.model.JpsDummyElement;
+import org.jetbrains.jps.model.ex.JpsElementTypeWithDummyProperties;
+import org.jetbrains.jps.model.runConfiguration.JpsRunConfigurationType;
+
+/**
+ * @author nik
+ */
+public class JpsUnknownRunConfigurationType extends JpsElementTypeWithDummyProperties implements JpsRunConfigurationType<JpsDummyElement> {
+ private final String myTypeId;
+
+ public JpsUnknownRunConfigurationType(@NotNull String typeId) {
+ myTypeId = typeId;
+ }
+
+ @NotNull
+ public String getTypeId() {
+ return myTypeId;
+ }
+}