Code Monkey home page Code Monkey logo

training's Introduction

HEADS IDE Training and Tutorials

HEADS

This repository contains a set of tutorials to get started with the technologies developed in the HEADS research project.

These tutorials are currently used internally in the HEADS project in order to evaluate the initial release of the HEADS IDE. However, these tutorial can be followed by external developers with no prior knoledge of the HEADS technologies. Do not hesitate to contact us if you have any enquiry or would like more information.

Installation of the HEADS IDE

The recommended way to run the tutorials is to install the HEADS IDE.

  • Download HEADS IDE that correspond to your environment (OS + 32/64 bits)
  • Unzip the archive
  • Run the eclipse(.exe) binary

More information about Eclipse can be found here

List of tutorials

We currently have a list of 5 tutorials (under development). We will update there descriptions when they are available. These tutorials typically assume that you follow them sequentially but ThingML and Kevoree tutorials might be followed independently.

1. HEADS ThingML modelling language basics

Learn the basics of ThingML. How to write you first program in a platform independent way and compile it to different platforms ranging from an Arduino microcontroller to a plain Java program. Also learn how to write platform specific components and link to exiting APIs or libraries.

**Go to this tutorial ** (Beta version released on 01/12/2014, your feedback is welcome).

2. HEADS Kevoree runtime management basics

Go to the tutorial

3. HEADS From design time to runtime (ThingML + Kevoree)

To be released around 01/01/2015.

4. HEADS ThingML modelling language "advanced"

To be released around 30/01/2015.

5. HEADS Kevoree runtime management "advanced"

To be released around 15/02/2015.

Quick Links

Installing the HEADS IDE: https://heads-project.github.io/methodology/heads_ide/installation_guide.html

Reporting issues, getting support, etc

If you encounter any problem, find a bug or have suggestions for additional features, please use the HEADS IDE bug tracker at https://github.com/HEADS-project/heads_ide/issues. This is the best and prefered way of getting in touch with us.

Contact us

For any other issue feel free to contact any of us by email.

training's People

Contributors

alexandrerio avatar aliverud avatar barais avatar brice-morin avatar ffleurey avatar junaidsoftwareag avatar kehusa avatar kgiannakakis avatar kgiannakakisatc avatar magnustellu avatar maxleiko avatar mboussaa avatar nharrand avatar oysteiha avatar oysteinh avatar sdalgard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

training's Issues

Documentation for creating or importing projects missing

I initially tried to open a thingml file directly into Eclipse (without a project) and got an error. I had to create a General project and add the thingml there. It was far easier to import the project from GitHub, but at first I didn't at what level to do the import. There is a single file containing all tutorials. It would be nice for all of these to be documented.

Always looking into http://registry.kevoree.org/ when resolving modules

There is a problem with resolving modules from my local repo. Seems like http://registry.kevoree.org/ is always preferred and Helloworld is defined in there as an deployment unit already. I am trying to rename my Component to MyHelloWorld but then I get:

[INFO] Installing C:\Users\KnutEilif\HeadsIde\workspace\training\2.Kevoree_Basic
s\4.Its_About_Sending_A_Message\java\target\myhelloworld-0.0.1-SNAPSHOT.jar to C
:\Users\KnutEilif.m2\repository\org\kevoree\example\myhelloworld\0.0.1-SNAPSHOT
\myhelloworld-0.0.1-SNAPSHOT.jar
[INFO] Installing C:\Users\KnutEilif\HeadsIde\workspace\training\2.Kevoree_Basic
s\4.Its_About_Sending_A_Message\java\pom.xml to C:\Users\KnutEilif.m2\repositor
y\org\kevoree\example\myhelloworld\0.0.1-SNAPSHOT\myhelloworld-0.0.1-SNAPSHOT.po
m
[INFO]

[INFO] --- org.kevoree.tools.mavenplugin:5.2.1:run (default-cli) @ myhelloworld

00:00 INFO: Bootstrap Kevoree node : node0, version 5.2.1
00:00 INFO: Resolved 96 typeDefinitions from Kevoree Registry http://registry.ke
voree.org/v5/ (JavaNode/5.0.3,JavaNode/5.0.4,JavaNode/5.0.5,WSGroup/5.0.8-SNAPSH
OT,JavaNode/5.0.6,SyncBroadcast/5.0.7-SNAPSHOT,JavaNode/5.0.7,SyncBroadcast/5.2.
3-SNAPSHOT,JavaNode/5.0.3-SNAPSHOT,JavaNode/5.1.1-SNAPSHOT,ConsolePrinter/5.1.3,
ConsolePrinter/5.1.2,JavaNode/5.1.2-SNAPSHOT,WSGroup/5.0.7,SyncBroadcast/5.2.1,S
yncBroadcast/5.2.0,ConsolePrinter/5.1.1-SNAPSHOT,WSGroup/5.2.3-SNAPSHOT,WSGroup/
5.0.7-SNAPSHOT,JavaNode/5.1.1,JavaNode/5.1.2,JavaNode/5.1.3,ConsolePrinter/5.0.7
-SNAPSHOT,WSGroup/5.0.3,WSGroup/0.1.0,WSGroup/5.0.4,WSGroup/5.0.3-SNAPSHOT,SyncB
roadcast/5.2.2,WSGroup/5.0.5,WSGroup/5.0.6,JavaNode/5.0.8-SNAPSHOT,ConsolePrinte
r/5.1.2-SNAPSHOT,ConsolePrinter/5.0.4-SNAPSHOT,ConsolePrinter/5.2.2,ConsolePrint
er/5.2.1,ConsolePrinter/5.1.1,ConsolePrinter/5.1.0,SyncBroadcast/5.1.0,JavaNode/
5.0.5-SNAPSHOT,SyncBroadcast/5.1.2,SyncBroadcast/5.1.1,SyncBroadcast/5.0.3-SNAPS
HOT,SyncBroadcast/5.0.8-SNAPSHOT,JavaNode/5.2.0,JavaNode/5.2.1,WSGroup/5.2.1-SNA
PSHOT,JavaNode/5.2.2,WSGroup/5.0.5-SNAPSHOT,JavaNode/5.0.6-SNAPSHOT,JavaNode/5.1
.4-SNAPSHOT,JavaNode/5.2.2-SNAPSHOT,ConsolePrinter/5.2.2-SNAPSHOT,WSGroup/5.1.2,
WSGroup/5.1.3,SyncBroadcast/5.1.3,ConsolePrinter/5.1.4-SNAPSHOT,WSGroup/5.1.4,WS
Group/5.1.0,WSGroup/5.1.1,SyncBroadcast/5.0.4-SNAPSHOT,SyncBroadcast/5.1.2-SNAPS
HOT,ConsolePrinter/5.2.0,ConsolePrinter/0.1.0,ConsolePrinter/5.2.1-SNAPSHOT,Sync
Broadcast/5.2.1-SNAPSHOT,SyncBroadcast/5.0.5-SNAPSHOT,WSGroup/5.2.2-SNAPSHOT,Syn
cBroadcast/5.0.3,SyncBroadcast/5.1.1-SNAPSHOT,WSGroup/5.1.2-SNAPSHOT,ConsolePrin
ter/5.0.5-SNAPSHOT,JavaNode/5.2.3-SNAPSHOT,JavaNode/5.1.0,JavaNode/5.0.7-SNAPSHO
T,ConsolePrinter/5.2.3-SNAPSHOT,JavaNode/5.2.1-SNAPSHOT,SyncBroadcast/5.2.2-SNAP
SHOT,WSGroup/5.2.1,SyncBroadcast/5.0.5,WSGroup/5.2.2,SyncBroadcast/5.0.4,SyncBro
adcast/5.0.7,SyncBroadcast/5.0.6,WSGroup/5.1.1-SNAPSHOT,WSGroup/5.2.0,ConsolePri
nter/5.0.7,ConsolePrinter/5.0.6,ConsolePrinter/5.0.5,ConsolePrinter/5.0.4,Consol
ePrinter/5.0.3,WSGroup/5.1.4-SNAPSHOT,SyncBroadcast/5.1.4-SNAPSHOT,ConsolePrinte
r/5.0.3-SNAPSHOT,JavaNode/5.0.4-SNAPSHOT,WSGroup/5.0.4-SNAPSHOT,ConsolePrinter/5
.0.8-SNAPSHOT)
00:00 WARN: Try to select snapshot in best effort mode for org.kevoree.example.M
yHelloWorld
java.lang.Exception: TypeDefinition not found with : org.kevoree.example.MyHello
World and version null in 0 selected
at org.kevoree.kevscript.util.TypeDefinitionResolver.resolve(TypeDefinit
ionResolver.java:124)
at org.kevoree.kevscript.KevScriptEngine.interpret(KevScriptEngine.java:
128)
at org.kevoree.kevscript.KevScriptEngine.interpret(KevScriptEngine.java:
124)
at org.kevoree.kevscript.KevScriptEngine.interpret(KevScriptEngine.java:
119)
at org.kevoree.kevscript.KevScriptEngine.executeFromStream(KevScriptEngi
ne.java:58)
at org.kevoree.bootstrap.Bootstrap.bootstrapFromKevScript(Bootstrap.java
:218)
at org.kevoree.bootstrap.Bootstrap.bootstrapFromKevScript(Bootstrap.java
:248)
at org.kevoree.bootstrap.Bootstrap.bootstrapFromFile(Bootstrap.java:337)

    at org.kevoree.bootstrap.Bootstrap.main(Bootstrap.java:85)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.

java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.kevoree.microkernel.impl.KevoreeMicroKernelImpl$1.run(KevoreeMicr
oKernelImpl.java:223)
01:08 INFO: Stopping Kevoree
01:08 INFO: Kevoree core stopped
01:08 INFO: Stopped.
What am I missing here?

Same artifact id for all kevoree examples

All kevoree examples share the same artifact id. This is unfortunate, as it makes difficult to import them all in HEADS IDE. You can also can't have more than one of them in your local m2 repository.

Problem with Kevoree Dictionary in JS

I followed exercise 2, updated the .js and .kevs to add a dictionary, but it seems it does not work...

$ grunt kevoree
Running "kevoree" task
>> Platform node name: node0
>> Bootstrap script: kevs\main.kevs
Fatal error: "grunt-kevoree" unable to parse KevScript
Unknown attribute "greetMessage" in /nodes[node0]/components[myComp] (set node0.
myComp.greetMessage = "Hello, HEADS!")

How to specify node name when running grunt

Hi,

How am I able to specify the node name of current javascript node when running grunt?
Is it possible to load deployment units from local machine when running kevoreejs?

Knut Eilif

Missing Builder on Kevoree project

If I look at the Builders for the Kevoree helloworld project, the Kevoree builder is missing.
I've installed the KevoreeEclipsePluginFeature 5.1.4 (KevoreeEclipsePluginFeature.feature.group, Kevoree Team). See screenshot:
missing builder

Unable to find "org.kevoree.library.JavascriptNode"

I had an example that worked yesterday... but does not work anymore today.... (maybe after new release by @dukeboard?)

Fatal error: "grunt-kevoree" unable to parse KevScript
Unable to find "org.kevoree.library.JavascriptNode" in current model nor on Kevoree registry.

How can I open existing ThingML files in Eclipse

During training 1. we were learned to do the new project wizard ....
This wizard makes a complete project for traingin 1.

Now I want to make my own project ... but I dont know how.
I can run the wizard and then replace the project files....

Not longer abel to run ThingML HellowThing

I have started on training 3. , but are not able to get anything working.....
When trying to go back to basics ... it doesnt work either....

When doing "run" from Netbeans I get:

Building HelloCfg 1.0-SNAPSHOT

--- exec-maven-plugin:1.2.1:exec (default-cli) @ HelloCfg ---
Terminating ThingML app...
Exception in thread "Thread-1" java.lang.NullPointerException
at org.thingml.java.Component.stop(Component.java:96)

at org.thingml.generated.Main$1.run(Main.java:25)

BUILD SUCCESS

Chat application can be refactored

It seems all implementation (C, Java, Node.js) share the same behavior, except for the print formatting stuff. This print formatting feature could be extracted into a separate thing (with a PIM model and 3 concrete implementation), and the rest of the behavior could be made 100% platform-independent, without any duplication.

Tutorial 4. JAVA - Cannot push new attribute value

The Tutorial 4 Java is up and running sending messages to printer.
I am trying to change the attribute 'greetMessage' that is sent to printer.
When pushing the new value it does not come through.

In Tutorial 3 there is a printout from the WSGroup when doing a push.
When trying the same in Tutorial 4 there is no printout.

I have tried the same in Tutorial 4 JS version and it works fine changing the attribute

ThingML configuration set-statement values is not used when exported to kevoree

The set-statements are made eccesible for kev-script.
The values given in ThingML configuration is "lost"

<********Snip of configuration **********>
configuration JavaPIF {
    instance starter2 : PIFStarter
    set starter2.mynum = 2
<*******Snip og generated code ********>
@Param (defaultValue = "0")
private short JavaPIF_starter2_PIFStarter_mynum__var = 0;
//Getters and Setters for non readonly/final attributes
public short getJavaPIF_starter2_PIFStarter_count__var() {
return JavaPIF_starter2_PIFStarter_count__var;
}

Sending messages between two ThingML ports via Kevoree fails

The serialization (JSON) generated by ThingML includes name of the sender port.
final String msg = "{"message":"pif_token","port":"to_ender_c", "token":" + PrintIncForwardMsgs_pif_token_token__var + "}";

The receiving port will parse/deserialize the message and compare it with the name of the receiving port.
if (json.get("port").asString().equals("from_starter_c")) {
if (json.get("message").asString().equals("pif_token")) {

The name of the sender port and the receiver port will "in real life" not be the same.
The result is that the received message is rejected.

Suggested fix:
Skip test of port name at receiving side. Or also skip port name in the serialization.
This should be ok as long as the cannels are point-to-point it should this should be safe.

Updating to version=5.2.5-SNAPSHOT in Kevoree editor fails with exceptions

06:34 INFO: JavaNode received a new Model to apply from /groups[sync]
06:34 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[library]/packages[java]/deployUnits[hashcode=,name=org.kevoree.library.java.ws,version=5.2.5-SNAPSHOT]
06:39 INFO: Resolved in 4975ms
06:39 ERROR:
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.(ZipFile.java:220)
at java.util.zip.ZipFile.(ZipFile.java:150)
at java.util.jar.JarFile.(JarFile.java:166)
at java.util.jar.JarFile.(JarFile.java:130)
at org.kevoree.kcl.impl.JarIndexDB.loadJar(JarIndexDB.java:103)
at org.kevoree.kcl.impl.FlexyClassLoaderImpl.load(FlexyClassLoaderImpl.java:119)
at org.kevoree.microkernel.impl.KevoreeMicroKernelImpl.put(KevoreeMicroKernelImpl.java:70)
at org.kevoree.bootstrap.kernel.KevoreeCLKernel.installDeployUnit(KevoreeCLKernel.java:97)
at org.kevoree.library.java.command.AddDeployUnit.execute(AddDeployUnit.java:50)
at org.kevoree.core.impl.deploy.KevoreeSeqDeployPhase.runPhase(KevoreeSeqDeployPhase.kt:43)
at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:79)
at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.execute(PrimitiveCommandExecutionHelper.kt:44)
at org.kevoree.core.impl.KevoreeCoreBean.internal_update_model(KevoreeCoreBean.java:408)
at org.kevoree.core.impl.KevoreeCoreBean$UpdateModelRunnable.run(KevoreeCoreBean.java:166)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
06:39 INFO: Stopping /groups[sync]
06:39 WARN: Error during execution of org.kevoree.library.java.command.UpgradeInstance@70beaf29
06:39 WARN: JavaSENode is aborting last update...
06:39 ERROR: Error during rollback
java.lang.NullPointerException
at org.kevoree.library.java.command.RemoveInstance.undo(RemoveInstance.java:45)
at org.kevoree.library.java.command.UpgradeInstance.undo(UpgradeInstance.java:45)
at org.kevoree.core.impl.deploy.KevoreeSeqDeployPhase.rollBack(KevoreeSeqDeployPhase.kt:80)
at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:104)
at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:91)
at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:91)
at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:91)
at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:91)
at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:91)
at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.execute(PrimitiveCommandExecutionHelper.kt:44)
at org.kevoree.core.impl.KevoreeCoreBean.internal_update_model(KevoreeCoreBean.java:408)
at org.kevoree.core.impl.KevoreeCoreBean$UpdateModelRunnable.run(KevoreeCoreBean.java:166)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
06:39 INFO: Starting /groups[sync]
06:39 WARN: JavaSENode update aborted in 5600 ms
06:39 INFO: End deploy result=false-5476
06:39 INFO: WSGroup "sync" update result: false
10:35 INFO: Stopping Kevoree
10:35 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[library]/packages[java]/deployUnits[hashcode=,name=org.kevoree.library.java.channels,version=5.2.4]
10:36 INFO: Resolved in 5ms
10:36 INFO: Resolving ............. /packages[com]/packages[softwareag]/packages[research]/packages[heads]/packages[tutorial]/deployUnits[hashcode=,name=movemessage,version=1.0.0-SNAPSHOT]
10:37 INFO: Resolved in 1151ms
10:37 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[library]/packages[java]/deployUnits[hashcode=,name=org.kevoree.library.java.javaNode,version=5.2.4]
10:37 INFO: Resolved in 2ms
10:37 INFO: Resolving ............. /packages[io]/packages[undertow]/deployUnits[hashcode=,name=undertow-core,version=1.2.0.Beta8]
10:37 INFO: Resolved in 3ms
10:37 INFO: Resolving ............. /packages[org]/packages[jboss]/packages[xnio]/deployUnits[hashcode=,name=xnio-nio,version=3.3.0.Final]
10:37 INFO: Resolved in 57ms
10:37 INFO: Resolving ............. /packages[org]/packages[jboss]/packages[xnio]/deployUnits[hashcode=,name=xnio-api,version=3.3.0.Final]
10:37 INFO: Resolved in 30ms
10:37 INFO: Resolving ............. /packages[org]/packages[jboss]/packages[logging]/deployUnits[hashcode=,name=jboss-logging,version=3.1.4.GA]
10:37 INFO: Resolved in 2ms
10:37 INFO: Resolving ............. /packages[fr]/packages[braindead]/deployUnits[hashcode=,name=wsmsgbroker-client,version=1.0.2]
10:37 INFO: Resolved in 71ms
10:37 INFO: Resolving ............. /packages[com]/packages[google]/packages[code]/packages[gson]/deployUnits[hashcode=,name=gson,version=2.3]
10:37 INFO: Resolved in 6ms
10:37 INFO: Resolving ............. /packages[org]/packages[java-websocket]/deployUnits[hashcode=,name=Java-WebSocket,version=1.3.0]
10:37 INFO: Resolved in 10ms
10:38 INFO: Stopping /nodes[node2]/components[myComp]
10:38 INFO: Stopping /groups[sync]
10:38 INFO: Stopping /hubs[chan1]
10:38 INFO: Stopping /hubs[chan2]
10:38 INFO: Stopping node type of node2
10:38 INFO: Kevoree core stopped
10:38 INFO: Stopped.

Nullpointer exception when pulling model

When trying to pull model from the Kevoree Web Editor in 3.Runtime_Reconfigurations/java I get the following error:

00:00 INFO: Bootstrap Kevoree node : node0, version 5.1.4
00:00 INFO: Resolved 50 typeDefinitions from Kevoree Registry http://registry.ke
voree.org/v5/ (JavaNode/5.2.0,WSGroup/5.2.1-SNAPSHOT,JavaNode/5.0.3,JavaNode/5.2
.1,JavaNode/5.0.4,JavaNode/5.2.2,JavaNode/5.0.5,WSGroup/5.0.8-SNAPSHOT,JavaNode/
5.0.6,JavaNode/5.0.6-SNAPSHOT,WSGroup/5.0.5-SNAPSHOT,JavaNode/5.0.7,JavaNode/5.1
.4-SNAPSHOT,JavaNode/5.2.2-SNAPSHOT,WSGroup/5.1.2,WSGroup/5.1.3,WSGroup/5.1.4,WS
Group/5.1.0,WSGroup/5.1.1,JavaNode/5.1.1-SNAPSHOT,JavaNode/5.0.3-SNAPSHOT,JavaNo
de/5.1.2-SNAPSHOT,WSGroup/5.2.2-SNAPSHOT,WSGroup/5.0.7,WSGroup/5.2.3-SNAPSHOT,WS
Group/5.1.2-SNAPSHOT,WSGroup/5.0.7-SNAPSHOT,JavaNode/5.2.3-SNAPSHOT,JavaNode/5.1
.0,JavaNode/5.0.7-SNAPSHOT,JavaNode/5.1.1,JavaNode/5.1.2,JavaNode/5.1.3,JavaNode
/5.2.1-SNAPSHOT,WSGroup/5.2.1,WSGroup/5.0.3,WSGroup/0.1.0,WSGroup/5.2.2,WSGroup/
5.0.4,WSGroup/5.0.3-SNAPSHOT,WSGroup/5.0.5,WSGroup/5.0.6,WSGroup/5.1.1-SNAPSHOT,
WSGroup/5.2.0,JavaNode/5.0.8-SNAPSHOT,WSGroup/5.1.4-SNAPSHOT,JavaNode/5.0.5-SNAP
SHOT,WSGroup/5.0.4-SNAPSHOT,JavaNode/5.0.4-SNAPSHOT,HelloWorld/0.0.1-SNAPSHOT)
00:00 WARN: Try to select snapshot in best effort mode for org.kevoree.example.H
elloWorld
00:00 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[li
brary]/packages[java]/deployUnits[hashcode=,name=org.kevoree.library.java.javaNo
de,version=5.2.2]
00:00 INFO: Resolved in 1ms
00:00 INFO: JavaNode, changing LOG level to INFO
00:00 INFO: Starting node type of node0
00:00 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[sa
mple]/deployUnits[hashcode=,name=helloworld,version=0.0.1-SNAPSHOT]
00:02 INFO: Resolved in 1285ms
00:02 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[li
brary]/packages[java]/deployUnits[hashcode=,name=org.kevoree.library.java.ws,ver
sion=5.2.2]
00:02 INFO: Resolved in 2ms
00:02 INFO: Resolving ............. /packages[fr]/packages[braindead]/deployUnit
s[hashcode=,name=wsmsgbroker-client,version=1.0.2]
00:02 INFO: Resolved in 2ms
00:02 INFO: Resolving ............. /packages[com]/packages[google]/packages[cod
e]/packages[gson]/deployUnits[hashcode=,name=gson,version=2.3]
00:02 INFO: Resolved in 2ms
00:02 INFO: Resolving ............. /packages[org]/packages[java-websocket]/depl
oyUnits[hashcode=,name=Java-WebSocket,version=1.3.0]
00:02 INFO: Resolved in 0ms
00:02 WARN: A required Port is defined at the model level but is not available a
t the implementation level
00:02 INFO: Add instance /nodes[node0]/components[myComp]
00:02 INFO: Add instance /groups[sync]
00:02 INFO: Starting /nodes[node0]/components[myComp]
00:02 INFO: Hello, world!
00:02 INFO: Starting /groups[sync]
00:02 INFO: WSGroup "sync" listen on 9000
00:02 INFO: JavaNode Update completed in 1376 ms
00:02 INFO: End deploy result=true-1375
00:02 INFO: Bootstrap completed

Exception: java.lang.NullPointerException thrown from the UncaughtExceptionHandl
er in thread "WebSocketWorker-32"

Null pointer when deploying HelloWorld samples

Even though this does not seem to be blocking (the rest of the deployment is done properly), this does not look very serious :-)

00:03 ERROR: No field corresponding to annotation, consistency error greetMessage on org.kevoree.example.HelloWorld
java.lang.NullPointerException
        at org.kevoree.bootstrap.kernel.KevoreeCLKernel.internalInjectField(KevoreeCLKernel.java:322)
        at org.kevoree.bootstrap.kernel.KevoreeCLKernel.injectDictionaryValue(KevoreeCLKernel.java:234)
        at org.kevoree.library.java.command.UpdateDictionary.execute(UpdateDictionary.java:70)
        at org.kevoree.core.impl.deploy.KevoreeSeqDeployPhase.runPhase(KevoreeSeqDeployPhase.kt:43)
        at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:7
9)
        at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:9
1)
        at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:9
1)
        at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:9
1)
        at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:9
1)
        at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:9
1)
        at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:9
1)
        at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:9
1)
        at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.executeStep(PrimitiveCommandExecutionHelper.kt:9
1)
        at org.kevoree.core.impl.deploy.PrimitiveCommandExecutionHelper.execute(PrimitiveCommandExecutionHelper.kt:44)
        at org.kevoree.core.impl.KevoreeCoreBean.internal_update_model(KevoreeCoreBean.java:406)
        at org.kevoree.core.impl.KevoreeCoreBean$UpdateModelRunnable.run(KevoreeCoreBean.java:166)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

Port names not visible in "editor.kevoree.org" GUI

When pulling a model from JavaNode generated from ThingML the GUI shows the components and its ports.
capture

Problem: All ports have the same name JavaP. This makes it hard to do connections to a specific port. When pulling model from "sintefboard" I get specific names, it should there be a difference...

The names are available in the kev-script.
capture2

Suggestion: Add the names to the GUI as a "tooltip"

Is it possible to create an array of input / output ports

Hi,
In the SINTEF-INST contribution I made a mux/demux handling three ports.
This does not scale...

Is it possible to have an array of input ports to handle a mux with 127 inputs?
Is it possible to have an array of output ports to handle a demux with 127 outputs?

Kevoree HelloWord example not working in JS

I think I went through all the steps (using CLI) until the grunt kevoree, and it crashed...

$ grunt kevoree
Running "kevoree" task
>> Platform node name: node0
>> Bootstrap script: kevs\main.kevs
[email protected] node_modules\grunt-kevoree\node_modules\kevoree-nodejs-runtime
├── [email protected]
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected])
>> Starting runtime: v5.1.1
09:35:13  INFO   KevoreeCore      Platform node name: node0
[email protected] .deploy_units\node0\node_modules\kevoree-node-javascript
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
└── [email protected] ([email protected])
09:35:19  ALL    KevoreeLogger    Set logLevel= debug
09:35:19  INFO   KevoreeCore      node0 : JavascriptNode/3.0.4 successfully started
09:35:19  ERROR  KevoreeCore      Deployment failed.
Error: no DeployUnit found for 'sync: WSGroup/5.2.2' that matches the 'javascript' platform
    at Class.processTrace (c:\Users\bmori\dev\heads\tmp\kevTuto\.deploy_units\node0\node_modules\kevoree-node-javasc
\lib\AdaptationEngine.js:140:43)
    at Class.processTraces (c:\Users\bmori\dev\heads\tmp\kevTuto\.deploy_units\node0\node_modules\kevoree-node-javas
t\lib\AdaptationEngine.js:86:25)
    at Class.AbstractNode.extend.processTraces (c:\Users\bmori\dev\heads\tmp\kevTuto\.deploy_units\node0\node_module
voree-node-javascript\lib\JavascriptNode.js:136:38)
    at c:\Users\bmori\dev\heads\tmp\kevTuto\node_modules\grunt-kevoree\node_modules\kevoree-nodejs-runtime\node_modu
kevoree-core\kevoree-core.js:138:65
    at Class.<anonymous> (c:\Users\bmori\dev\heads\tmp\kevTuto\node_modules\grunt-kevoree\node_modules\kevoree-nodej
ntime\node_modules\kevoree-core\kevoree-core.js:332:25)
    at Class.<anonymous> (c:\Users\bmori\dev\heads\tmp\kevTuto\.deploy_units\node0\node_modules\kevoree-node-javascr
lib\JavascriptNode.js:77:13)
    at Class.start [as _super] (c:\Users\bmori\dev\heads\tmp\kevTuto\.deploy_units\node0\node_modules\kevoree-node-j
cript\node_modules\kevoree-entities\lib\KevoreeEntity.js:57:9)
    at Class.AbstractNode.extend.start (c:\Users\bmori\dev\heads\tmp\kevTuto\.deploy_units\node0\node_modules\kevore
de-javascript\lib\JavascriptNode.js:51:14)
    at Class.PseudoClass_setStaticSuper [as start] (c:\Users\bmori\dev\heads\tmp\kevTuto\.deploy_units\node0\node_mo
s\kevoree-node-javascript\node_modules\pseudoclass\source\Class.js:126:19)
    at Class.<anonymous> (c:\Users\bmori\dev\heads\tmp\kevTuto\node_modules\grunt-kevoree\node_modules\kevoree-nodej
ntime\node_modules\kevoree-core\kevoree-core.js:327:35)

Fatal error: "grunt-kevoree" unable to bootstrap platform. Shutting down.

Kevoree JS needs .NET framework 2.0 SDK on Windows

I guess this is needed to recompile the WS-group (or one of its deps). Requirements should be updated in the README.

$ grunt kevoree
Running "kevoree" task
>> Platform node name: node0
>> Bootstrap script: kevs\main.kevs
>> Starting runtime: v5.1.1
09:53:47  INFO   KevoreeCore      Platform node name: node0
09:53:48  ALL    KevoreeLogger    Set logLevel= debug
09:53:48  INFO   KevoreeCore      node0 : JavascriptNode/3.0.4 successfully started
Running "kevoree_genmodel:main" (kevoree_genmodel) task
Package:         my.package
TypeDefinition:  HelloWorld
Version:         0.1.0
DeployUnit:      kevoree-comp-helloworld

Model generation done
Model 'kevlib.json' saved at kevlib.json

Done, without errors.
[email protected] .deploy_units\node0\node_modules\kevoree-comp-helloworld
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
09:53:58  DEBUG  AddDeployUnit    /packages[my]/packages[package]/deployUnits[hashcode=,name=kevoree-comp-helloworld,ver
sion=0.1.0]
-
c:\Users\bmori\dev\heads\tmp\kevTuto\.deploy_units\node0\node_modules\kevoree-group-ws\node_modules\ws>node "c:\Users\bm
ori\dev\heads\tmp\kevTuto\node_modules\grunt-kevoree\node_modules\npmi\node_modules\npm\bin\node-gyp-bin\\..\..\node_mod
ules\node-gyp\bin\node-gyp.js" rebuild
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
MSBUILD : error MSB3428: Could not load the Visual C++ component "VCBuild.exe". To fix this, 1) install the .NET Framew
ork 2.0 SDK, 2) install Microsoft Visual Studio 2005 or 3) add the location of the component to the system path if it i
s installed elsewhere.  [c:\Users\bmori\dev\heads\tmp\kevTuto\.deploy_units\node0\node_modules\kevoree-group-ws\node_mo
dules\ws\build\binding.sln]
MSBUILD : error MSB3428: Could not load the Visual C++ component "VCBuild.exe". To fix this, 1) install the .NET Framew
ork 2.0 SDK, 2) install Microsoft Visual Studio 2005 or 3) add the location of the component to the system path if it i
s installed elsewhere.  [c:\Users\bmori\dev\heads\tmp\kevTuto\.deploy_units\node0\node_modules\kevoree-group-ws\node_mo
dules\ws\build\binding.sln]
[email protected] .deploy_units\node0\node_modules\kevoree-group-ws
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
09:54:07  DEBUG  AddDeployUnit    /packages[org]/packages[kevoree]/packages[library]/deployUnits[hashcode=,name=kevoree-
group-ws,version=5.2.1]
09:54:07  DEBUG  AddInstance      myComp /packages[my]/packages[package]/typeDefinitions[name=HelloWorld,version=0.1.0]
09:54:07  DEBUG  AddInstance      sync /packages[org]/packages[kevoree]/packages[library]/typeDefinitions[name=WSGroup,v
ersion=5.2.1]
09:54:07  DEBUG  UpdateDictiona.  node0.logLevel = DEBUG
09:54:07  ALL    KevoreeLogger    Set logLevel= debug
09:54:07  DEBUG  UpdateDictiona.  sync.port/node0 = 9000
09:54:07  DEBUG  UpdateInstance   node0
09:54:07  DEBUG  HelloWorld       START
09:54:07  DEBUG  StartInstance    /nodes[node0]/components[myComp]
09:54:07  INFO   WSGroup          "sync" listen on 9000
09:54:07  DEBUG  StartInstance    /groups[sync]
09:54:07  DEBUG  KevoreeCore      Model deployed successfully: 9 adaptations (19828ms)
>> Bootstrap model deployed successfully

When compiling CPrinter.thingml in tutorial step 3. compiler generates error

Compiling with "C/C++ for Linux / Posix" (Platform: posix)
Selected input file: L/Tutorial/ThingML_Basics/3.PlatformPrint/_c/CPrinter.thingml (C:\Users\KnutEilif\HeadsIde\workspace\Tutorial\ThingML_Basics\3.PlatformPrint_c\CPrinter.thingml)
ERROR: The selected model contains errors:
file:/C:/Users/KnutEilif/HeadsIde/workspace/Tutorial/ThingML_Basics/3.PlatformPrint/_c/CPrinter.thingml : Unable to load model with uri: ../CustomPrint.thingml cause: java.io.FileNotFoundException: C:\Users\KnutEilif\HeadsIde\workspace\Tutorial\ThingML_Basics\3.PlatformPrint\CustomPrint.thingml (The system cannot find the file specified)
file:/C:/Users/KnutEilif/HeadsIde/workspace/Tutorial/ThingML_Basics/3.PlatformPrint/_c/CPrinter.thingml : Cannot resolve thing CustomPrinter
file:/C:/Users/KnutEilif/HeadsIde/workspace/Tutorial/ThingML_Basics/3.PlatformPrint/_c/CPrinter.thingml : Cannot resolve port Print
file:/C:/Users/KnutEilif/HeadsIde/workspace/Tutorial/ThingML_Basics/3.PlatformPrint/_c/CPrinter.thingml : Cannot resolve message customPrint
file:/C:/Users/KnutEilif/HeadsIde/workspace/Tutorial/ThingML_Basics/3.PlatformPrint/_c/CPrinter.thingml : Cannot resolve receive message(event) parameter: myString
file:/C:/Users/KnutEilif/HeadsIde/workspace/Tutorial/ThingML_Basics/3.PlatformPrint/_c/CPrinter.thingml : Cannot resolve thing CustomPrinterClient
file:/C:/Users/KnutEilif/HeadsIde/workspace/Tutorial/ThingML_Basics/3.PlatformPrint/_c/CPrinter.thingml : Cannot resolve port Print
file:/C:/Users/KnutEilif/HeadsIde/workspace/Tutorial/ThingML_Basics/3.PlatformPrint/_c/CPrinter.thingml : Cannot resolve port Print
Compilation stopped.

yo kevoree

yo kevoree
results in
Error kevoree

You don't seem to have a generator with the name kevoree installed.
You can see available generators with npm search yeoman-generator and then install them with npm install [name].
To see the 1 registered generators run yo with the --help option.

The installation of generator-kevoree directly befor this command looks OK:
npm install -g generator-kevoree
[email protected] D:\Users\mask\AppData\Roaming\npm\node_modules\generator-kevoree
├── [email protected]
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

Missing classes when compiling Kevoree HelloWorld

When running HelloWorld example following exception occurs:

C:\Users\KnutEilif\HeadsIde\workspace\training\2.Kevoree_Basics\1.HelloWorld\jav
a> mvn kev:run
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Kevoree :: helloworld 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- org.kevoree.tools.mavenplugin:5.1.4:run (default-cli) @ helloworld --
-
00:00 INFO: Bootstrap Kevoree node : node0, version 5.1.4
00:00 INFO: Resolved 25 typeDefinitions from Kevoree Registry http://registry.ke
voree.org/v5/ (HelloWorld/0.0.1-SNAPSHOT,JavaNode/5.0.4-SNAPSHOT,JavaNode/5.0.5,
JavaNode/5.1.2,JavaNode/5.0.7-SNAPSHOT,JavaNode/5.1.1-SNAPSHOT,JavaNode/5.1.1,Ja
vaNode/5.2.2-SNAPSHOT,JavaNode/5.0.4,JavaNode/5.1.0,JavaNode/5.2.3-SNAPSHOT,Java
Node/5.1.2-SNAPSHOT,JavaNode/5.2.1-SNAPSHOT,JavaNode/5.0.3,JavaNode/5.0.6-SNAPSH
OT,JavaNode/5.2.2,JavaNode/5.0.8-SNAPSHOT,JavaNode/5.0.3-SNAPSHOT,JavaNode/5.0.5
-SNAPSHOT,JavaNode/5.1.3,JavaNode/5.2.1,JavaNode/5.1.4-SNAPSHOT,JavaNode/5.0.7,J
avaNode/5.2.0,JavaNode/5.0.6)
00:00 WARN: Try to select snapshot in best effort mode for org.kevoree.example.H
elloWorld
00:00 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[li
brary]/packages[java]/deployUnits[hashcode=,name=org.kevoree.library.java.javaNo
de,version=5.2.2]
00:00 INFO: Resolved in 0ms
00:00 INFO: JavaNode, changing LOG level to INFO
00:00 INFO: Starting node type of node0
00:00 ERROR: Error while creating instance HelloWorld
java.lang.ClassNotFoundException: org.kevoree.example.HelloWorld
        at org.kevoree.kcl.impl.FlexyClassLoaderImpl.loadClass(FlexyClassLoaderI
mpl.java:111)
        at org.kevoree.kcl.impl.FlexyClassLoaderImpl.loadClass(FlexyClassLoaderI
mpl.java:22)
        at org.kevoree.bootstrap.kernel.KevoreeCLKernel.createInstance(KevoreeCL
Kernel.java:172)
        at org.kevoree.library.java.command.AddInstance.run(AddInstance.java:98)

        at java.lang.Thread.run(Thread.java:744)
00:00 ERROR: Inconsistency in typeDefinition
{"class":"org.kevoree.ComponentType@name=HelloWorld,version=0.0.1-SNAPSHOT","nam
e":"HelloWorld","abstract":"false","version":"0.0.1-SNAPSHOT","deployUnits":["/p
ackages[org]/packages[kevoree]/packages[sample]/deployUnits[hashcode=,name=hello
world,version=0.0.1-SNAPSHOT]"],"superTypes":[],"dictionaryType":[
{"class":"org.kevoree.DictionaryType@20004215231418391615188","generated_KMF_ID"
:"20004215231418391615188","attributes":[
{"class":"org.kevoree.DictionaryAttribute@greetMessage","datatype":"STRING","def
aultValue":"Hello, world!","name":"greetMessage","fragmentDependant":"false","op
tional":"true","state":"false","genericTypes":[]}
]}
],"metaData":[
{"class":"[email protected]","name":"java.class","value":"org.kevoree
.example.HelloWorld"}
],"required":[
{"class":"org.kevoree.PortTypeRef@hello","noDependency":"false","name":"hello","
optional":"true","ref":[],"mappings":[]}
],"provided":[]}

00:00 ERROR: Error while adding instance myComp
java.lang.NullPointerException
        at org.kevoree.library.java.wrapper.KInstanceWrapper.setTargetObj(KInsta
nceWrapper.java:69)
        at org.kevoree.library.java.wrapper.WrapperFactory.wrap(WrapperFactory.j
ava:40)
        at org.kevoree.library.java.command.AddInstance.run(AddInstance.java:99)

        at java.lang.Thread.run(Thread.java:744)
00:00 WARN: Error during execution of AddInstance myComp
00:00 WARN: JavaSENode is aborting last update...
00:00 INFO: Remove instance /nodes[node0]/components[myComp]
00:00 WARN: JavaSENode update aborted in 32 ms
00:00 INFO: End deploy result=false-32
00:00 INFO: Bootstrap completed
00:23 INFO: Stopping Kevoree
00:23 INFO: Stopping node type of node0
00:23 INFO: Kevoree core stopped
00:23 INFO: Stopped.

How to combine Generated Java(ThingML) and Java(manual) in Kevoree

In training 3. I want to have several components in my javanode.

  • One component is generated Java from ThingML
  • Another comonents are manually written Java

I dont want to not have the manually written Java into the directories with generated Java.
This may lead to overwritten files...

How do I set up this so Kevoree find all the components referred in the Kev-script?

Compilation error when compiling TestTimerC (in cygwin)

KnutEilif@KnutEilif-PC /cygdrive/c/Users/KnutEilif/HeadsIde/workspace/Tutorial/thingml-gen/posix/TestTimerC
$ make
cc -O2 -w -c ClockLinux.c
ClockLinux.c: In function ‘f_ClockLinux_sleep_ms’:
ClockLinux.c:29:16: error: storage size of ‘tv’ isn’t known
struct timeval tv;
^
Makefile:10: recipe for target 'ClockLinux.o' failed
make: *** [ClockLinux.o] Error 1

SAG contribution (2. Kevoree Basics) - only node0 starts

When I run this example (2.Kevoree_Basics/6.Contrib/SAG) with mvn clean install kev:run, the log shows that only node0 is started (and stopped). Is this true? Model looks OK in the Kevoree editor.

Log:
\training\2.Kevoree_Basics\6.Contrib\SAG>mvn clean install kev:run
[INFO] Scanning for projects...
[INFO]
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Kevoree :: SAG 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ movemessage ---
[INFO] Deleting D:\Users\mask\git\skorsky\training\2.Kevoree_Basics\6.Contrib\SAG\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ movemessage ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\Users\mask\git\skorsky\training\2.Kevoree_Basics\6.Contrib\SAG\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ movemessage ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to D:\Users\mask\git\skorsky\training\2.Kevoree_Basics\6.Contrib\SAG\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ movemessage ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\Users\mask\git\skorsky\training\2.Kevoree_Basics\6.Contrib\SAG\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:testCompile (default-testCompile) @ movemessage ---
[INFO] Changes detected - recompiling the module!
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ movemessage ---
[INFO]
[INFO] --- org.kevoree.tools.mavenplugin:5.2.5:generate (default) @ movemessage ---
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ movemessage ---
[INFO] Building jar: D:\Users\mask\git\skorsky\training\2.Kevoree_Basics\6.Contrib\SAG\target\movemessage-1.0.0-SNAPSHOT.jar
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ movemessage ---
[INFO] Installing D:\Users\mask\git\skorsky\training\2.Kevoree_Basics\6.Contrib\SAG\target\movemessage-1.0.0-SNAPSHOT.jar to D:\Users\mask.m2\repository\com\softwareag\research\heads\tutorial\movemes
sage\1.0.0-SNAPSHOT\movemessage-1.0.0-SNAPSHOT.jar
[INFO] Installing D:\Users\mask\git\skorsky\training\2.Kevoree_Basics\6.Contrib\SAG\pom.xml to D:\Users\mask.m2\repository\com\softwareag\research\heads\tutorial\movemessage\1.0.0-SNAPSHOT\movemessag
e-1.0.0-SNAPSHOT.pom
[INFO]
[INFO] --- org.kevoree.tools.mavenplugin:5.2.5:run (default-cli) @ movemessage ---
[INFO] Manually install file:D:\Users\mask\git\skorsky\training\2.Kevoree_Basics\6.Contrib\SAG\target\classes for mvn:com.softwareag.research.heads.tutorial:movemessage:1.0.0-SNAPSHOT
00:00 INFO: Bootstrap Kevoree node : node0, version 5.2.5
00:00 INFO: Load Bootstrap model from D:\Users\mask\git\skorsky\training\2.Kevoree_Basics\6.Contrib\SAG\target\classes\KEV-INF\lib.json
00:00 INFO: Request=JavaNode,JavaNode,JavaNode,com.softwareag.research.heads.tutorial.MoveMessage,com.softwareag.research.heads.tutorial.MoveMessage,com.softwareag.research.heads.tutorial.MoveMessage,
WSGroup,SyncBroadcast,SyncBroadcast,SyncBroadcast,
00:01 INFO: Resolved 84 typeDefinitions from Kevoree Registry http://registry.kevoree.org/v5/ (JavaNode/5.2.0,WSGroup/5.2.1-SNAPSHOT,JavaNode/5.0.3,JavaNode/5.2.1,JavaNode/5.0.4,JavaNode/5.2.2,JavaNod
e/5.0.5,JavaNode/5.2.3,WSGroup/5.2.4-SNAPSHOT,WSGroup/5.0.8-SNAPSHOT,JavaNode/5.0.6-SNAPSHOT,JavaNode/5.2.4,JavaNode/5.0.6,WSGroup/5.0.5-SNAPSHOT,SyncBroadcast/5.0.7-SNAPSHOT,JavaNode/5.0.7,JavaNode/5
.1.4-SNAPSHOT,JavaNode/5.2.2-SNAPSHOT,JavaNode/5.2.5-SNAPSHOT,WSGroup/5.1.2,WSGroup/5.1.3,SyncBroadcast/5.1.3,WSGroup/5.1.4,WSGroup/5.1.0,WSGroup/5.1.1,SyncBroadcast/5.2.3-SNAPSHOT,JavaNode/5.0.3-SNAP
SHOT,JavaNode/5.1.1-SNAPSHOT,SyncBroadcast/5.1.2-SNAPSHOT,SyncBroadcast/5.0.4-SNAPSHOT,JavaNode/5.1.2-SNAPSHOT,SyncBroadcast/5.0.5-SNAPSHOT,SyncBroadcast/5.2.1-SNAPSHOT,WSGroup/5.2.2-SNAPSHOT,WSGroup/
5.0.7,SyncBroadcast/5.0.3,SyncBroadcast/5.2.1,SyncBroadcast/5.2.0,SyncBroadcast/5.1.1-SNAPSHOT,WSGroup/5.2.3-SNAPSHOT,WSGroup/5.1.2-SNAPSHOT,WSGroup/5.0.7-SNAPSHOT,JavaNode/5.2.3-SNAPSHOT,JavaNode/5.1
.0,JavaNode/5.0.7-SNAPSHOT,JavaNode/5.1.1,JavaNode/5.1.2,JavaNode/5.1.3,JavaNode/5.2.1-SNAPSHOT,SyncBroadcast/5.2.2-SNAPSHOT,WSGroup/0.1.0,WSGroup/5.0.3,WSGroup/5.2.1,SyncBroadcast/5.2.3,SyncBroadcast
/5.0.5,WSGroup/5.2.2,WSGroup/5.0.4,WSGroup/5.0.3-SNAPSHOT,SyncBroadcast/5.2.2,SyncBroadcast/5.0.4,WSGroup/5.0.5,WSGroup/5.2.3,SyncBroadcast/5.0.7,WSGroup/5.0.6,WSGroup/5.2.4,SyncBroadcast/5.0.6,SyncBr
oadcast/5.2.4,WSGroup/5.1.1-SNAPSHOT,SyncBroadcast/5.2.5-SNAPSHOT,WSGroup/5.2.0,JavaNode/5.0.8-SNAPSHOT,JavaNode/5.2.4-SNAPSHOT,WSGroup/5.2.5-SNAPSHOT,WSGroup/5.1.4-SNAPSHOT,SyncBroadcast/5.1.0,JavaNo
de/5.0.5-SNAPSHOT,SyncBroadcast/5.1.2,SyncBroadcast/5.1.1,SyncBroadcast/5.1.4-SNAPSHOT,SyncBroadcast/5.0.3-SNAPSHOT,WSGroup/5.0.4-SNAPSHOT,JavaNode/5.0.4-SNAPSHOT,SyncBroadcast/5.0.8-SNAPSHOT,SyncBroa
dcast/5.2.4-SNAPSHOT)
00:07 WARN: Try to select snapshot in best effort mode for com.softwareag.research.heads.tutorial.MoveMessage
00:07 WARN: Founded: MoveMessage:1.0.0-SNAPSHOT
00:07 WARN: Try to select snapshot in best effort mode for com.softwareag.research.heads.tutorial.MoveMessage
00:07 WARN: Founded: MoveMessage:1.0.0-SNAPSHOT
00:07 WARN: Try to select snapshot in best effort mode for com.softwareag.research.heads.tutorial.MoveMessage
00:07 WARN: Founded: MoveMessage:1.0.0-SNAPSHOT
00:07 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[library]/packages[java]/deployUnits[hashcode=,name=org.kevoree.library.java.javaNode,version=5.2.4]
00:07 INFO: Resolved in 0ms
00:07 INFO: JavaNode, changing LOG level to INFO
00:07 INFO: Starting node type of node0
00:08 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[library]/packages[java]/deployUnits[hashcode=,name=org.kevoree.library.java.channels,version=5.2.4]
00:08 INFO: Resolved in 0ms
00:08 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[library]/packages[java]/deployUnits[hashcode=,name=org.kevoree.library.java.ws,version=5.2.4]
00:08 INFO: Resolved in 0ms
00:08 INFO: Resolving ............. /packages[io]/packages[undertow]/deployUnits[hashcode=,name=undertow-core,version=1.2.0.Beta8]
00:08 INFO: Resolved in 10ms
00:08 INFO: Resolving ............. /packages[org]/packages[jboss]/packages[xnio]/deployUnits[hashcode=,name=xnio-nio,version=3.3.0.Final]
00:08 INFO: Resolved in 0ms
00:08 INFO: Resolving ............. /packages[org]/packages[jboss]/packages[xnio]/deployUnits[hashcode=,name=xnio-api,version=3.3.0.Final]
00:08 INFO: Resolved in 10ms
00:09 INFO: Resolving ............. /packages[org]/packages[jboss]/packages[logging]/deployUnits[hashcode=,name=jboss-logging,version=3.1.4.GA]
00:09 INFO: Resolved in 10ms
00:09 INFO: Resolving ............. /packages[fr]/packages[braindead]/deployUnits[hashcode=,name=wsmsgbroker-client,version=1.0.2]
00:09 INFO: Resolved in 0ms
00:09 INFO: Resolving ............. /packages[com]/packages[google]/packages[code]/packages[gson]/deployUnits[hashcode=,name=gson,version=2.3]
00:09 INFO: Resolved in 0ms
00:09 INFO: Resolving ............. /packages[org]/packages[java-websocket]/deployUnits[hashcode=,name=Java-WebSocket,version=1.3.0]
00:09 INFO: Resolved in 0ms
00:09 INFO: Add instance /nodes[node0]/components[myComp]
00:09 INFO: Add instance /groups[sync]
00:09 INFO: Add instance /hubs[chan2]
00:09 INFO: Add instance /hubs[chan0]
00:09 INFO: Bind /nodes[node0]/components[myComp]/provided[inQueue] /hubs[chan2]
00:09 INFO: Bind /nodes[node0]/components[myComp]/required[outQueue] /hubs[chan0]
00:09 INFO: Starting /nodes[node0]/components[myComp]
00:09 INFO: Start with node Id A, myComp, node0
00:09 INFO: Starting /groups[sync]
Feb 16, 2015 1:40:23 PM org.xnio.Xnio
INFO: XNIO version 3.3.0.Final
Feb 16, 2015 1:40:23 PM org.xnio.nio.NioXnio
INFO: XNIO NIO Implementation Version 3.3.0.Final
00:19 INFO: WSGroup "sync" listen on 9000
00:19 INFO: Starting /hubs[chan2]
00:19 INFO: Starting /hubs[chan0]
00:19 INFO: JavaNode Update completed in 11172 ms
00:19 INFO: End deploy result=true-11172
00:19 INFO: Bootstrap completed
01:11 INFO: Stopping Kevoree
01:11 INFO: Stopping /nodes[node0]/components[myComp]
01:11 INFO: Stop node A
01:11 INFO: Stopping /groups[sync]
01:11 INFO: Stopping /hubs[chan2]
01:11 INFO: Stopping /hubs[chan0]
01:11 INFO: Stopping node type of node0
01:11 INFO: Kevoree core stopped
01:11 INFO: Stopped.

exercise 5: `kevoreejs -n jsNode --kevscript=starterModel.kevs` hangs

Ercercise 5 of Kevoree Basics tutorial.
kevoreejs -v works, shows version 5.2.1.
Running kevoreejs -n jsNode --kevscript=starterModel.kevs hangs. Killing it with Ctr-C (twice).

Output:
D:\Users\mask\git\skorsky\training\2.Kevoree_Basics\5.Distributed_System>kevoreejs -n jsNode --kevscript=starterModel.kevs
14:23:46 ALL KevoreeLogger Set logLevel= info
14:23:46 INFO KevoreeCore Platform node name: jsNode
[email protected] ..........\AppData\Local\Temp\node_modules\kevoree-node-javascript
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected]
└── [email protected] ([email protected])
/
D:\Users\mask\AppData\Local\Temp\node_modules\kevoree-group-ws\node_modules\ws>node "D:\Users\mask\AppData\Roaming\npm\node_modules\kevoree-nodejs-runtime\node_modules\kevoree-resolvers\node_modules\n
pm\bin\node-gyp-bin....\node_modules\node-gyp\bin\node-gyp.js" rebuild
[email protected] ..........\AppData\Local\Temp\node_modules\kevoree-group-ws
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected])
14:26:41 WARN NodeJSRuntime Got SIGINT. Will shutdown Kevoree gracefully once deploy process finished. (^C again to force quit)
14:26:43 WARN NodeJSRuntime Force quit while deploying. D:\Users\mask\AppData\Local\Temp\node_modules might be corrupted.

More details:
hanging process has the command line:
node "D:\Users\mask\AppData\Roaming\npm\\node_modules\kevoree-nodejs-runtime\cli.js" -n jsNode --kevscript=starterModel.kevs

Command shell shows 'node-gyp' in the title.

How to update kevlib.json?

When I finished the first HelloWorld step and then add the dictionary attribute, this is not found due to missing declaration in kevlib.json.

/**
 * Dictionary attribute named "greetMessage"
 */
dic_greetMessage: null,

I managed to update kevlib.json by deleting it and regenerating everything with 'yo kevoree'.

Is this the recommended way?

Tutorial description for the Kevoree Basics Tutorial (JavaScript)

The page https://github.com/HEADS-project/training/tree/master/2.Kevoree_Basics describes for the JavaScript projects:

New Kevoree JavaScript Project

From existing sources: File > New > Project > Kevoree > Kevoree JS Project
    Set the project name
    Set the location of your sources
    Click Finish
From scratch:
    Follow the first step of the Kevoree JavaScript Tutorial n°1
    Now use the same process as for From existing sources

Questions:
Using the New Kevoree JS Project wizard for the first case
new kevoree js project, what template should I use?

Does 'Set the location of your sources' mean modify 'Use default location'?

Is node.js a prerequisite?

Javascript node complaining about missing java deployment unit

I am running identical kevs on both java and javascript:

add chatserver : JavascriptNode
add chatclient0 : JavaNode

// provide a network way to connect to those nodes
network chatserver.ip.lo 127.0.0.1
network chatclient0.ip.lo 127.0.0.1

add group : WSGroup
set group.master = 'chatserver'
attach chatserver, chatclient0 group

// create and add your HelloWorld component (named "myComp") in "node0"
add chatserver.server : no.tellu.ChatServer
add chatclient0.client : no.tellu.ChatClient

The java node chatclient0 starts as expected, but the javascript node chatserver is complaining about missing deployment unit:
Fatal error: "grunt-kevoree" unable to parse KevScript
Unable to find "no.tellu.ChatClient" in current model nor on Kevoree registry.

I would not expect the javascript node chatserver to care about no.tellu.ChatClient at all. Why is it asking for it?

org.sintef.thingml.resource.thingml.ui was unable to load class org.sintef.thingml.resource.thingml.ui.launch.ThingmlLaunchShortcut.

I have the Kevoree helloworld Java project in my workspace and was working on this project.
Only a second project is in the workspace: ThingML_Basics (from the first training).

Then I get the following issue in the Eclipse error log.
I've no clue what caused this.

eclipse.buildId=4.4.1.M20140925-0400
java.version=1.8.0_25
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86_64

org.eclipse.equinox.registry
Error
Tue Jan 06 14:56:15 CET 2015
Plug-in org.sintef.thingml.resource.thingml.ui was unable to load class org.sintef.thingml.resource.thingml.ui.launch.ThingmlLaunchShortcut.

java.lang.ClassNotFoundException: org.sintef.thingml.resource.thingml.ui.launch.ThingmlLaunchShortcut cannot be found by org.sintef.thingml.resource.thingml.ui_0.6.0.201412120908
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:432)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:568)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
at org.eclipse.debug.internal.ui.launchConfigurations.LaunchShortcutExtension.getDelegate(LaunchShortcutExtension.java:405)
at org.eclipse.debug.internal.ui.launchConfigurations.LaunchShortcutExtension.isParticipant(LaunchShortcutExtension.java:545)
at org.eclipse.debug.internal.ui.contextlaunching.LaunchingResourceManager.pruneShortcuts(LaunchingResourceManager.java:388)
at org.eclipse.debug.internal.ui.contextlaunching.LaunchingResourceManager.getLabel(LaunchingResourceManager.java:318)
at org.eclipse.debug.internal.ui.contextlaunching.LaunchingResourceManager.computeLabels(LaunchingResourceManager.java:244)
at org.eclipse.debug.internal.ui.contextlaunching.LaunchingResourceManager$1$1.run(LaunchingResourceManager.java:142)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Kevoree preference page

While searching for the cause of some issue, I saw the Kevoree prference page.
kevoree preferences
When should I configure the version of Kevoree?
The plug-in can retrieve it's version from the OSGi BundleContext class. This would be more consistent since you cannot forget to change it when you update Kevoree.

Java compilation message

When compiling to Java the following dialog appears:

heads_ide_java_message

It is difficult to copy-paste the commands from there. Printing them in console would make things easier.

No metadata file found for org.kevoree.sample/helloworld/0.0.1-SNAPSHOT

I used 'mvn install' to build the Kevoree helloworld project and then 'mvn kev:run' to run it.

In the console I get
00:05 ERROR: No metadata file found for org.kevoree.sample/helloworld/0.0.1-SNAPSHOT
and
00:05 ERROR: Unable to resolve /packages[org]/packages[kevoree]/packages[sample]/deployUnits[hashcode=,name=helloworld,version=0.0.1-SNAPSHOT]

Complete log (Windows 7 cmd):
D:\Users\mask\git\HEADS\training\2.Kevoree_Basics\1.HelloWorld\java>mvn kev:run
[INFO] Scanning for projects...
[INFO]
[INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Kevoree :: helloworld 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- org.kevoree.tools.mavenplugin:5.1.4:run (default-cli) @ helloworld ---
00:00 INFO: Bootstrap Kevoree node : node0, version 5.1.4
00:02 INFO: Resolved 25 typeDefinitions from Kevoree Registry http://registry.kevoree.org/v5/ (JavaNode/5.2.0,JavaNode/5.1.1,JavaNode/5.0.3,JavaNode/5.2.1,JavaNode/5.1.2,JavaNode/5.2.2,JavaNode/5.1.3,
JavaNode/5.0.4,JavaNode/5.0.5,JavaNode/5.0.6,JavaNode/5.0.6-SNAPSHOT,JavaNode/5.0.7,JavaNode/5.1.4-SNAPSHOT,JavaNode/5.2.2-SNAPSHOT,JavaNode/5.2.1-SNAPSHOT,JavaNode/5.0.8-SNAPSHOT,JavaNode/5.1.1-SNAPS
HOT,JavaNode/5.0.3-SNAPSHOT,JavaNode/5.1.2-SNAPSHOT,JavaNode/5.0.5-SNAPSHOT,JavaNode/5.0.4-SNAPSHOT,JavaNode/5.2.3-SNAPSHOT,JavaNode/5.1.0,JavaNode/5.0.7-SNAPSHOT,HelloWorld/0.0.1-SNAPSHOT)
00:02 WARN: Try to select snapshot in best effort mode for org.kevoree.example.HelloWorld
00:02 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[library]/packages[java]/deployUnits[hashcode=,name=org.kevoree.library.java.javaNode,version=5.2.2]
00:03 INFO: Resolved in 128ms
00:03 INFO: JavaNode, changing LOG level to INFO
00:03 INFO: Starting node type of node0
00:03 INFO: Resolving ............. /packages[org]/packages[kevoree]/packages[sample]/deployUnits[hashcode=,name=helloworld,version=0.0.1-SNAPSHOT]
00:05 ERROR: No metadata file found for org.kevoree.sample/helloworld/0.0.1-SNAPSHOT
00:05 INFO: Resolved in 2122ms
00:05 ERROR: Unable to resolve /packages[org]/packages[kevoree]/packages[sample]/deployUnits[hashcode=,name=helloworld,version=0.0.1-SNAPSHOT]
00:05 WARN: Error during execution of AddDeployUnit org.kevoree.sample/helloworld/0.0.1-SNAPSHOT/
00:05 WARN: JavaSENode is aborting last update...
00:05 WARN: JavaSENode update aborted in 2341 ms
00:05 INFO: End deploy result=false-2338
00:05 INFO: Bootstrap completed
03:38 INFO: Stopping Kevoree
03:38 INFO: Stopping node type of node0
03:38 INFO: Kevoree core stopped
03:38 INFO: Stopped.
Terminate batch job (Y/N)? n

Further question:
In
00:03 INFO: Starting node type of node0
I guess that 'node0' is the name of the node. What is the type of the node? (Same message shown while stopping the node).

Unable to generate kevoree

Hi ,

When i try to run the below command
npm i -g generator-kevoree

Output:
npm WARN excluding symbolic link test\symlinks\dir1\dangling-symlink -> does-not
-exist
C:\Users\jumo\AppData\Roaming\npm\generator -> C:\Users\jumo\AppData\Roaming\npm
\node_modules\generator\bin\index.js
C:\Users\jumo\AppData\Roaming\npm\generate -> C:\Users\jumo\AppData\Roaming\npm
node_modules\generator\bin\index.js
[email protected] C:\Users\jumo\AppData\Roaming\npm\node_modules\generator
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected],
[email protected])
└── [email protected] ([email protected])

but when i try to ask Yeoman to generate the architecture of your Kevoree JS project using command it will show that the generator is not created
yo kevoree

Output :
You don't seem to have a generator with the name kevoree installed.
You can see available generators with npm search yeoman-generator and then install them with npm install [name].
To see the 0 registered generators run yo with the --help option.

"Compile Java Kevoree" does not create kev-script

I have started a stepwise approach for training 3.3.
The goal is to test the tool chain before doing more advanced stuff.

  1. Generate standalone ThingML code into "Plain Java" using HEADS IDE
    Run the code in ...thingml-gen/java
    Using: mvn clean package exec:java -Dexec.mainClass=org.thingml.generated.Main
    Ok
  2. Generate standalone ThingML code into "Compile Java Kevoree" using HEADS IDE
    Compile the code in ...thingml-gen/java
    Using: mvn clean install
    Ok
  3. Compile/run the ThingML process inside Kevoree
    Compile the code in ...thingml-gen/java
    Using: mvn kev:run
    Fail .....

00:00 INFO: Bootstrap Kevoree node : node0, version 5.2.5
java.io.FileNotFoundException: /home/etostd/heads-co/my-training-fork/3.Wrapping_ThingML_into_Kevoree/3.3_Contrib/SINTEF-INST/thingml-gen/java/src/main/kevs/main.kevs (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(FileInputStream.java:138)
at org.kevoree.bootstrap.Bootstrap.bootstrapFromFile(Bootstrap.java:348)
at org.kevoree.bootstrap.Bootstrap.main(Bootstrap.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

The problem seems to be that the kev-script not is generated.

FIX:
cd ...thingml-gen/java/src/main
mkdir kevs
Redo steps 2) and 3)
Now it works....:-)

It seems that the kev-script not is generted due to missing directory.

Timer process sending throws exception

It seems that the send method for some reason throws exception.....

<******* Snip from console printout **********>
Sender:0 sends token:5
Ender:0 got token:5
Sender:0 sends token:7
Ender:0 got token:7
Sender:0 sends token:5
Ender:0 got token:5 java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at java.lang.Thread.sleep(Thread.java:340)
at org.thingml.java.Component.send(Component.java:66)
at org.thingml.generated.TimerJava.sendTimer_timeout_via_timer(TimerJava.java:44)
at org.thingml.generated.TimerJava.access$000(TimerJava.java:21)
at org.thingml.generated.TimerJava$1$1.run(TimerJava.java:119)

Sender:0 sends token:6
Ender:0 got token:6 java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at java.lang.Thread.sleep(Thread.java:340)
at org.thingml.java.Component.send(Component.java:66)
at org.thingml.generated.TimerJava.sendTimer_timeout_via_timer(TimerJava.java:44)
at org.thingml.generated.TimerJava.access$000(TimerJava.java:21)
at org.thingml.generated.TimerJava$1$1.run(TimerJava.java:119)

Sender:0 sends token:8
Ender:0 got token:8
Sender:0 sends token:7
Ender:0 got token:7
Sender:0 sends token:9
Ender:0 got token:9 java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at java.lang.Thread.sleep(Thread.java:340)
at org.thingml.java.Component.send(Component.java:66)
at org.thingml.generated.TimerJava.sendTimer_timeout_via_timer(TimerJava.java:44)
at org.thingml.generated.TimerJava.access$000(TimerJava.java:21)
at org.thingml.generated.TimerJava$1$1.run(TimerJava.java:119)

Sender:0 sends token:6
Ender:0 got token:6
Sender:0 sends token:10

<******* Snip from thingml **********>
datatype JThread
@java_type "Thread";

// Manage a set of software timers.
thing TimerJava includes Timer
@pim "Timer"
@platform "java"
{
    property timer : JThread

    statechart SoftTimer init default {
        state default {

          internal start
            event m : timer?timer_start
            guard m.delay > 0
            action do
             if (not(timer == 'null')) do
                '' & timer & '.interrupt();'
             end
             'Thread t = new Thread(){
                public void run() {
                try {
                    Thread.sleep(' & m.delay & ');'
                    timer!timer_timeout()
                '} catch (Exception ex) {
                }
                //interrupt();
                }
              };'
             timer = 't' 
              '' & timer & '.start();'                
            end

          internal cancel
            event m : timer?timer_cancel
            action do
              if (not(timer == 'null')) do
                '' & timer & '.interrupt();'
              end
            end
        }
    }
}

running thingml Application from timer.thingml fails with exception in Eclipse

I get this entry in the Eclipse error log, nothing else:

eclipse.buildId=4.4.1.M20140925-0400
java.version=1.8.0_31
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Framework arguments: -showlocation
Command-line arguments: -os win32 -ws win32 -arch x86_64 -showlocation

org.eclipse.equinox.registry
Error
Mon Feb 16 16:40:07 CET 2015
Plug-in org.sintef.thingml.resource.thingml.ui was unable to load class org.sintef.thingml.resource.thingml.ui.launch.ThingmlLaunchShortcut.

java.lang.ClassNotFoundException: org.sintef.thingml.resource.thingml.ui.launch.ThingmlLaunchShortcut cannot be found by org.sintef.thingml.resource.thingml.ui_0.6.0.201502122331
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:432)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:568)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
at org.eclipse.debug.internal.ui.launchConfigurations.LaunchShortcutExtension.getDelegate(LaunchShortcutExtension.java:405)
at org.eclipse.debug.internal.ui.launchConfigurations.LaunchShortcutExtension.launch(LaunchShortcutExtension.java:418)
at org.eclipse.debug.internal.ui.actions.LaunchShortcutAction.run(LaunchShortcutAction.java:71)
at org.eclipse.debug.internal.ui.actions.LaunchShortcutAction.runWithEvent(LaunchShortcutAction.java:123)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:595)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:511)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:420)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:782)
at org.eclipse.jface.action.ActionContributionItem$9.handleEvent(ActionContributionItem.java:1293)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.