rcType match {
case "diskspace" =>
val action = MessageHelpers.currentResourceEventOf(w).getDetails.get("action")
- val path = MessageHelpers.currentResourceEventOf(w).getDetails.get("path")
+ //val path = MessageHelpers.currentResourceEventOf(w).getDetails.get("path")
//"%s@%s".format(action,path)
action
case "vmtime" =>
val propsfile = new FileStreamResource(new File("aquarium.properties"))
var _props: Props = Props(propsfile)(StdConverters.AllConverters).getOr(Props()(StdConverters.AllConverters))
val aquarium = new AquariumBuilder(_props, ResourceLocator.DefaultPolicyMsg).
- update(Aquarium.EnvKeys.storeProvider, new MemStoreProvider).
+ //update(Aquarium.EnvKeys.storeProvider, new MemStoreProvider).
update(Aquarium.EnvKeys.eventsStoreFolder,Some(new File(".."))).
build()
aquarium.start()
import gr.grnet.aquarium.store.LocalFSEventStore
import gr.grnet.aquarium.util.{LogHelpers, Tags}
import org.slf4j.Logger
-import gr.grnet.aquarium.message.avro.{MessageHelpers, AvroHelpers}
+import gr.grnet.aquarium.message.avro.{MessageFactory, MessageHelpers, AvroHelpers}
+import gr.grnet.aquarium.message.{IMEventModel, ResourceEventModel}
+import gr.grnet.aquarium.event.DetailsModel
/**
* A [[gr.grnet.aquarium.connector.handler.PayloadHandler]] for
// eventParser: JsonTextFormat ⇒ E
jsonTextFormat ⇒ {
- AvroHelpers.specificRecordOfJsonString(jsonTextFormat.value, new IMEventMsg)
+
+ try {
+ AvroHelpers.specificRecordOfJsonString(jsonTextFormat.value, new IMEventMsg)
+ }
+ catch {
+ case e:Throwable =>
+ val model = aquarium.converters.convertEx[IMEventModel](jsonTextFormat)
+ val msg = new IMEventMsg()
+ msg.setOriginalID(model.id)
+ msg.setClientID(model.clientID)
+ msg.setDetails(DetailsModel.fromScalaModelMap(model.details))
+ msg.setEventType(model.eventType)
+ msg.setEventVersion(model.eventVersion)
+ msg.setIsActive(java.lang.Boolean.valueOf(model.isActive))
+ msg.setOccurredMillis(model.occurredMillis)
+ msg.setReceivedMillis(model.receivedMillis)
+ msg.setRole(model.role)
+ msg.setUserID(model.userID)
+ msg
+ }
},
// onEventParserSuccess: (Array[Byte], E) ⇒ Unit
import gr.grnet.aquarium.Aquarium
import gr.grnet.aquarium.converter.JsonTextFormat
import gr.grnet.aquarium.message.avro.AvroHelpers
-import gr.grnet.aquarium.message.avro.gen.ResourceEventMsg
+import gr.grnet.aquarium.message.avro.gen.{IMEventMsg, ResourceEventMsg}
import gr.grnet.aquarium.store.LocalFSEventStore
import gr.grnet.aquarium.util._
import org.slf4j.Logger
+import gr.grnet.aquarium.message.ResourceEventModel
+import gr.grnet.aquarium.event.DetailsModel
/**
* A [[gr.grnet.aquarium.connector.handler.PayloadHandler]] for
// eventParser: JsonTextFormat ⇒ E
jsonTextFormat ⇒ {
- AvroHelpers.specificRecordOfJsonString(jsonTextFormat.value, new ResourceEventMsg)
+ try {
+ AvroHelpers.specificRecordOfJsonString(jsonTextFormat.value, new ResourceEventMsg)
+ } catch {
+ case e:Throwable =>
+ val model = aquarium.converters.convertEx[ResourceEventModel](jsonTextFormat)
+ val msg = new ResourceEventMsg()
+ msg.setOriginalID(model.id)
+ msg.setClientID(model.clientID)
+ msg.setDetails(DetailsModel.fromScalaModelMap(model.details))
+ msg.setEventVersion(model.eventVersion)
+ msg.setOccurredMillis(model.occurredMillis)
+ msg.setReceivedMillis(model.receivedMillis)
+ msg.setUserID(model.userID)
+ msg.setResource(model.resource)
+ msg.setInstanceID(model.instanceID)
+ msg.setValue(model.value.toString)
+ msg
+
+ }
},
// onEventParserSuccess: (Array[Byte], E) ⇒ Unit
map.asJava
}
+ def fromScalaModelMap(map: scala.collection.Map[String, String]): Type = {
+ map.map {case (s1,s2) =>
+ (s1,MessageFactory.anyValueMsgOfString(s2))
+ }.asJava
+ }
+
def fromScalaTuples(tuples: (String, AnyValueMsg)*): Type = {
fromScalaMap(Map(tuples:_*))
}
--- /dev/null
+package gr.grnet.aquarium.message
+
+/**
+ * Created with IntelliJ IDEA.
+ * User: pgerakios
+ * Date: 9/13/12
+ * Time: 11:07 AM
+ * To change this template use File | Settings | File Templates.
+ */
+
+
+case class IMEventModel(
+ id : String,
+ clientID: String,
+ details : Map[String,String],
+ eventType : String,
+ eventVersion : String,
+ isActive : Boolean,
+ occurredMillis: Long,
+ receivedMillis: Long,
+ role: String,
+ userID:String
+
+ )
+{}
+
+case class ResourceEventModel(
+ id : String,
+ clientID: String,
+ details : Map[String,String],
+ resource:String,
+ eventVersion : String,
+ instanceID : String,
+ occurredMillis: Long,
+ receivedMillis: Long,
+ value : Double,
+ userID:String
+)
+{}