diff --git a/openmole/core/org.openmole.core.dsl/src/main/scala/org/openmole/core/dsl/extension/package.scala b/openmole/core/org.openmole.core.dsl/src/main/scala/org/openmole/core/dsl/extension/package.scala index dae5d10c0f6f8133089d525fc491255881530925..4b37690a413faff3ae0046b00901524a0db1f714 100644 --- a/openmole/core/org.openmole.core.dsl/src/main/scala/org/openmole/core/dsl/extension/package.scala +++ b/openmole/core/org.openmole.core.dsl/src/main/scala/org/openmole/core/dsl/extension/package.scala @@ -15,6 +15,7 @@ package object extension { type Hook = org.openmole.core.workflow.mole.FromContextHook def Hook = org.openmole.core.workflow.mole.Hook + def FormattedFileHook = org.openmole.core.workflow.mole.FormattedFileHook type Source = org.openmole.core.workflow.mole.Source type FromContextSource = org.openmole.core.workflow.mole.FromContextSource diff --git a/openmole/core/org.openmole.core.pluginmanager/src/main/scala/org/openmole/core/pluginmanager/PluginInfoActivator.scala b/openmole/core/org.openmole.core.pluginmanager/src/main/scala/org/openmole/core/pluginmanager/PluginInfoActivator.scala index 19504cfddce981e7e4b26ee5d627d0753afefe35..c85226c02893017becab16c77cb33e8b7eed0a8b 100644 --- a/openmole/core/org.openmole.core.pluginmanager/src/main/scala/org/openmole/core/pluginmanager/PluginInfoActivator.scala +++ b/openmole/core/org.openmole.core.pluginmanager/src/main/scala/org/openmole/core/pluginmanager/PluginInfoActivator.scala @@ -81,6 +81,7 @@ object KeyWord { case class SamplingKeyWord(name: String) extends KeyWord case class WordKeyWord(name: String) extends KeyWord case class DomainKeyWord(name: String) extends KeyWord + case class OtherKeyWord(name: String) extends KeyWord } trait PluginInfoActivator extends BundleActivator { diff --git a/openmole/core/org.openmole.core.workflow/src/main/scala/org/openmole/core/workflow/Activator.scala b/openmole/core/org.openmole.core.workflow/src/main/scala/org/openmole/core/workflow/Activator.scala index 6dbf0d726531ce06a12be27111b4536ca41d6fec..77ff1a3c178316d92791e7cbda049a8c55c4ad23 100644 --- a/openmole/core/org.openmole.core.workflow/src/main/scala/org/openmole/core/workflow/Activator.scala +++ b/openmole/core/org.openmole.core.workflow/src/main/scala/org/openmole/core/workflow/Activator.scala @@ -2,6 +2,7 @@ package org.openmole.core.workflow import org.openmole.core.pluginmanager.PluginInfo import org.openmole.core.preference.ConfigurationInfo +import org.openmole.core.workflow.mole.CSVHook.CSVOutputFormat import org.osgi.framework.{ BundleActivator, BundleContext } class Activator extends BundleActivator { @@ -54,7 +55,8 @@ class Activator extends BundleActivator { TaskKeyWord(objectName(ToArrayTask)), TaskKeyWord(objectName(MoleTask)), TaskKeyWord(objectName(FromContextTask)), - HookKeyWord(objectName(FromContextHook)) + HookKeyWord(objectName(FromContextHook)), + OtherKeyWord(objectName(CSVOutputFormat)) ) } diff --git a/openmole/plugins/org.openmole.plugin.hook.json/src/main/scala/org/openmole/plugin/hook/json/Activator.scala b/openmole/plugins/org.openmole.plugin.hook.json/src/main/scala/org/openmole/plugin/hook/json/Activator.scala index dc57194006769fcd68efa0297f4dacb5a1981b0f..ffd9fd86dd66fb3a1f360be0ffa7ed2afcbf5619 100644 --- a/openmole/plugins/org.openmole.plugin.hook.json/src/main/scala/org/openmole/plugin/hook/json/Activator.scala +++ b/openmole/plugins/org.openmole.plugin.hook.json/src/main/scala/org/openmole/plugin/hook/json/Activator.scala @@ -33,7 +33,10 @@ class Activator extends PluginInfoActivator { import org.openmole.core.pluginmanager.KeyWord._ val keyWords: Vector[KeyWord] = - Vector() + Vector( + TaskKeyWord(objectName(JSONHook)), + OtherKeyWord(objectName(JSONOutputFormat)) + ) PluginInfo.register(this, Vector(this.getClass.getPackage), keyWords = keyWords) ConfigurationInfo.register( diff --git a/openmole/plugins/org.openmole.plugin.hook.json/src/main/scala/org/openmole/plugin/hook/json/JSONHook.scala b/openmole/plugins/org.openmole.plugin.hook.json/src/main/scala/org/openmole/plugin/hook/json/JSONHook.scala new file mode 100644 index 0000000000000000000000000000000000000000..9b8dc4b750a46441072a6151486691eb9f67ea51 --- /dev/null +++ b/openmole/plugins/org.openmole.plugin.hook.json/src/main/scala/org/openmole/plugin/hook/json/JSONHook.scala @@ -0,0 +1,21 @@ +package org.openmole.plugin.hook.json + +import org.openmole.core.dsl._ +import org.openmole.core.dsl.extension._ + +object JSONHook { + def apply(output: WritableOutput, values: Val[_]*)(implicit name: sourcecode.Name, definitionScope: DefinitionScope): FromContextHook = + apply(output, values.toVector) + + def apply( + output: WritableOutput, + values: Seq[Val[_]] = Vector.empty, + exclude: Seq[Val[_]] = Vector.empty)(implicit name: sourcecode.Name, definitionScope: DefinitionScope): FromContextHook = + FormattedFileHook( + format = JSONOutputFormat(), + output = output, + values = values, + exclude = exclude, + name = Some("JSONHook") + ) +}