Skip to content

Instantly share code, notes, and snippets.

@maxleiko
Created January 16, 2015 09:47
Show Gist options
  • Save maxleiko/a8a1754b78a14ed596f2 to your computer and use it in GitHub Desktop.
Save maxleiko/a8a1754b78a14ed596f2 to your computer and use it in GitHub Desktop.
Kevoree MM v6 proposal
//KMF_VERSION=4.8.1
//VERSION=6.0.0-SNAPSHOT
class org.kevoree.Model {
@contained
nodes : org.kevoree.Node[0,*]
@contained
channels : org.kevoree.Channel[0,*]
@contained
groups : org.kevoree.Group[0,*]
@contained
namespaces : org.kevoree.Namespace[0,*]
}
class org.kevoree.Node : org.kevoree.Instance {
@contained
components : org.kevoree.Component[0,*]
@contained
networks : org.kevoree.NetworkInfo[0,*]
subNodes : org.kevoree.Node[0,*] oppositeOf host
host : org.kevoree.Node oppositeOf subNodes
groups : org.kevoree.Group[0,*] oppositeOf nodes
}
class org.kevoree.Component : org.kevoree.Instance {
@contained
inputs : org.kevoree.Port[0,*]
@contained
outputs : org.kevoree.Port[0,*]
}
class org.kevoree.Group : org.kevoree.Instance {
nodes : org.kevoree.Node[0,*] oppositeOf groups
}
class org.kevoree.Channel : org.kevoree.Instance {
ports : org.kevoree.Port[0,*] oppositeOf channels
}
class org.kevoree.Namespace : org.kevoree.NamedElement {
@contained
typeDefinitions : org.kevoree.TypeDefinition[0,*]
}
class org.kevoree.PortType : org.kevoree.NamedElement {}
class org.kevoree.TypeDefinition : org.kevoree.NamedElement {
@id
version : String
@contained
dictionaryType : org.kevoree.DictionaryType
@contained
metaData : org.kevoree.Value[0,*]
abstract : Bool
deployUnits : org.kevoree.DeployUnit[0,*]
superTypes : org.kevoree.TypeDefinition[0,*]
}
class org.kevoree.ComponentType : org.kevoree.TypeDefinition {
@contained
inputs : org.kevoree.PortType[0,*]
@contained
outputs : org.kevoree.PortType[0,*]
}
class org.kevoree.GroupType : org.kevoree.TypeDefinition {}
class org.kevoree.NodeType : org.kevoree.TypeDefinition {}
class org.kevoree.ChannelType : org.kevoree.TypeDefinition {}
class org.kevoree.Port : org.kevoree.NamedElement {
channels : org.kevoree.Channel[0,*] oppositeOf ports
}
class org.kevoree.Dictionary {
@contained
values : org.kevoree.Value[0,*]
}
class org.kevoree.FragmentDictionary : org.kevoree.Dictionary,org.kevoree.NamedElement {}
class org.kevoree.Value : org.kevoree.NamedElement {
value : String
}
class org.kevoree.DictionaryType {
@contained
attributes : org.kevoree.DictionaryAttribute[0,*]
}
enum org.kevoree.DataType {
Byte
Short
Int
Long
Float
Double
Boolean
Char
String
}
class org.kevoree.DictionaryAttribute : org.kevoree.TypedElement {
optional : Bool
datatype : org.kevoree.DataType
fragmentDependant : Bool
defaultValue : String
}
class org.kevoree.TypedElement : org.kevoree.NamedElement {
genericTypes : org.kevoree.TypedElement[0,*]
}
class org.kevoree.DeployUnit : org.kevoree.NamedElement {
@id
version : String
@id
hashcode : String
@contained
filters : org.kevoree.Value[0,*]
url : String
requiredLibs : org.kevoree.DeployUnit[0,*]
}
class org.kevoree.NamedElement {
@id
name : String
}
class org.kevoree.NetworkInfo : org.kevoree.NamedElement {
@contained
values : org.kevoree.Value[0,*]
}
class org.kevoree.Instance : org.kevoree.NamedElement {
@contained
dictionary : org.kevoree.Dictionary
@contained
fragmentDictionary : org.kevoree.FragmentDictionary[0,*]
@contained
metaData : org.kevoree.Value[0,*]
started : Bool
typeDefinition : org.kevoree.TypeDefinition
}
@maxleiko
Copy link
Author

maxleiko commented Jun 8, 2015

Add meta-data for groups so that tools such as the editor can have a guess on what protocol to use to communicate with them.
Something like the platform meta-data "javascript", "node", etc.. but with "ws", "tcp", "udp", "webrtc", etc..

@dukeboard
Copy link

There is minor change for the new .file i will do it next week :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment