diff --git a/java_xdsml/plugins/org.eclipse.gemoc.execution.sequential.javaxdsml.metaprog/plugin.xml b/java_xdsml/plugins/org.eclipse.gemoc.execution.sequential.javaxdsml.metaprog/plugin.xml
index df7b022..2889516 100644
--- a/java_xdsml/plugins/org.eclipse.gemoc.execution.sequential.javaxdsml.metaprog/plugin.xml
+++ b/java_xdsml/plugins/org.eclipse.gemoc.execution.sequential.javaxdsml.metaprog/plugin.xml
@@ -8,19 +8,10 @@
name="org.eclipse.gemoc.metaprog.kermeta3"
validator="org.eclipse.gemoc.execution.sequential.javaxdsml.ruleprovider.Kermeta3RuleProvider">
-
-
-
-
+ optional="false"
+ validationRule="org.eclipse.gemoc.execution.sequential.javaxdsml.ruleprovider.Kermeta3Rule">
diff --git a/java_xdsml/plugins/org.eclipse.gemoc.execution.sequential.javaxdsml.metaprog/src/org/eclipse/gemoc/execution/sequential/javaxdsml/ruleprovider/Kermeta3Rule.java b/java_xdsml/plugins/org.eclipse.gemoc.execution.sequential.javaxdsml.metaprog/src/org/eclipse/gemoc/execution/sequential/javaxdsml/ruleprovider/Kermeta3Rule.java
new file mode 100644
index 0000000..a3b8940
--- /dev/null
+++ b/java_xdsml/plugins/org.eclipse.gemoc.execution.sequential.javaxdsml.metaprog/src/org/eclipse/gemoc/execution/sequential/javaxdsml/ruleprovider/Kermeta3Rule.java
@@ -0,0 +1,22 @@
+package org.eclipse.gemoc.execution.sequential.javaxdsml.ruleprovider;
+
+import org.eclipse.gemoc.dsl.Entry;
+import org.eclipse.gemoc.xdsmlframework.api.extensions.metaprog.ILanguageComponentValidator;
+import org.eclipse.gemoc.xdsmlframework.api.extensions.metaprog.Message;
+import org.eclipse.gemoc.xdsmlframework.api.extensions.metaprog.Severity;
+import org.eclipse.gemoc.xdsmlframework.extensions.kermeta3.Kermeta3RuleHelper;
+
+public class Kermeta3Rule implements ILanguageComponentValidator {
+
+ private Kermeta3RuleHelper k3Helper = new Kermeta3RuleHelper(true);
+
+
+ @Override
+ public Message validate(Entry entry) {
+ if("k3".matches(entry.getKey())) {
+ return k3Helper.execute(entry.getValue(), entry.eResource().getURI());
+ }
+ return(new Message("", Severity.DEFAULT));
+ }
+
+}
diff --git a/java_xdsml/plugins/org.eclipse.gemoc.execution.sequential.javaxdsml.metaprog/src/org/eclipse/gemoc/execution/sequential/javaxdsml/ruleprovider/Kermeta3RuleProvider.java b/java_xdsml/plugins/org.eclipse.gemoc.execution.sequential.javaxdsml.metaprog/src/org/eclipse/gemoc/execution/sequential/javaxdsml/ruleprovider/Kermeta3RuleProvider.java
deleted file mode 100644
index a834311..0000000
--- a/java_xdsml/plugins/org.eclipse.gemoc.execution.sequential.javaxdsml.metaprog/src/org/eclipse/gemoc/execution/sequential/javaxdsml/ruleprovider/Kermeta3RuleProvider.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.gemoc.execution.sequential.javaxdsml.ruleprovider;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.gemoc.xdsmlframework.api.extensions.metaprog.IRule;
-import org.eclipse.gemoc.xdsmlframework.api.extensions.metaprog.IRuleProvider;
-import org.eclipse.gemoc.xdsmlframework.api.extensions.metaprog.EcoreRule;
-import org.eclipse.gemoc.xdsmlframework.extensions.kermeta3.Kermeta3Rule;
-
-
-/**
- * RuleProvider used for the Kermeta3 meta-programming approach
- * @author GUEGUEN Ronan
- *
- */
-public class Kermeta3RuleProvider implements IRuleProvider {
-
- private Set ruleSet = new HashSet();
-
- /**
- * Creates a RuleProvider for the Kermeta3 meta-programming approach, contains rules from the Ecore RuleProvider
- */
- public Kermeta3RuleProvider() {
- ruleSet.add(new EcoreRule());
- ruleSet.add(new Kermeta3Rule(true));
- }
-
- @Override
- public Collection getValidationRules(){
- return ruleSet;
-
- }
-
-}