Skip to content

Commit 9a53246

Browse files
committed
Componentizing the application (first draft)
1 parent 37694a0 commit 9a53246

File tree

66 files changed

+1651
-241
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+1651
-241
lines changed

install.sh

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/sh
2+
export MAVEN_OPTS="-Xms2048m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=1024m"
3+
export JAVA_HOME=$(/usr/libexec/java_home)
4+
mvn clean install

org.kevoree.kubi.controller/pom.xml

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>org.kevoree.kubi.root</artifactId>
7+
<groupId>org.kevoree.kubi</groupId>
8+
<version>1-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<artifactId>org.kevoree.kubi.controller</artifactId>
13+
<name>Kubi :: Controller</name>
14+
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>org.kevoree.tools</groupId>
19+
<artifactId>org.kevoree.tools.javase.framework</artifactId>
20+
<version>${kevoree.version}</version>
21+
</dependency>
22+
<dependency>
23+
<groupId>org.kevoree.tools</groupId>
24+
<artifactId>org.kevoree.tools.annotation.api</artifactId>
25+
<version>${kevoree.version}</version>
26+
</dependency>
27+
<dependency>
28+
<groupId>org.kevoree.corelibrary.javase</groupId>
29+
<artifactId>org.kevoree.library.javase.javaseNode</artifactId>
30+
<version>2.0.6-SNAPSHOT</version>
31+
</dependency>
32+
<dependency>
33+
<groupId>org.kevoree.kubi</groupId>
34+
<artifactId>org.kevoree.kubi.api</artifactId>
35+
<version>${project.version}</version>
36+
</dependency>
37+
</dependencies>
38+
39+
<build>
40+
<plugins>
41+
<plugin>
42+
<groupId>org.kevoree.tools</groupId>
43+
<artifactId>org.kevoree.tools.annotation.mavenplugin</artifactId>
44+
<version>${kevoree.version}</version>
45+
<extensions>true</extensions>
46+
<configuration>
47+
<libraries>
48+
<library>JavaSE</library>
49+
</libraries>
50+
</configuration>
51+
<executions>
52+
<execution>
53+
<goals>
54+
<goal>generate</goal>
55+
</goals>
56+
</execution>
57+
</executions>
58+
</plugin>
59+
</plugins>
60+
</build>
61+
62+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
package org.kevoree.kubi.controller;
2+
3+
import org.kevoree.annotation.*;
4+
import org.kevoree.framework.AbstractComponentType;
5+
import org.kevoree.framework.MessagePort;
6+
import org.kevoree.framework.service.handler.ModelListenerAdapter;
7+
import org.kevoree.log.Log;
8+
9+
/**
10+
* Created with IntelliJ IDEA.
11+
* User: gregory.nain
12+
* Date: 14/11/2013
13+
* Time: 11:34
14+
*/
15+
16+
@Requires({
17+
@RequiredPort(name = "toDrivers", type = PortType.MESSAGE, optional = true),
18+
@RequiredPort(name = "toViews", type = PortType.MESSAGE, optional = true)
19+
})
20+
21+
@Provides({
22+
@ProvidedPort(name = "fromDrivers", type = PortType.MESSAGE),
23+
@ProvidedPort(name = "fromViews", type = PortType.MESSAGE)
24+
})
25+
26+
@DictionaryType({
27+
@DictionaryAttribute(name="logLevel", vals = {"DEBUG", "INFO", "ERROR", "TRACE", "OFF", "WARN"}, optional = true, defaultValue = "WARN")
28+
})
29+
30+
@ComponentType
31+
public class DefaultKubiController extends AbstractComponentType {
32+
33+
34+
@Start
35+
public void startComponent() {
36+
setLogLevel();
37+
}
38+
39+
@Stop
40+
public void stopComponent() {
41+
}
42+
43+
@Update
44+
public void updateComponent() {
45+
setLogLevel();
46+
}
47+
48+
private void setLogLevel() {
49+
String logLevelVal = (String)getDictionary().get("logLevel");
50+
if ("DEBUG".equals(logLevelVal)) {
51+
Log.DEBUG();
52+
} else if ("WARN".equals(logLevelVal)) {
53+
Log.WARN();
54+
} else if ("INFO".equals(logLevelVal)) {
55+
Log.INFO();
56+
} else if ("ERROR".equals(logLevelVal)) {
57+
Log.ERROR();
58+
} else if ("TRACE".equals(logLevelVal)) {
59+
Log.TRACE();
60+
} else {
61+
Log.NONE();
62+
}
63+
}
64+
65+
66+
@Port(name="fromViews")
67+
public void messageFromViews(Object msg) {
68+
69+
}
70+
71+
@Port(name="fromDrivers")
72+
public void messageFromDrivers(Object msg) {
73+
74+
}
75+
76+
77+
}

org.kevoree.kubi.driver.zwave/pom.xml

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<parent>
6+
<artifactId>org.kevoree.kubi.root</artifactId>
7+
<groupId>org.kevoree.kubi</groupId>
8+
<version>1-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<artifactId>org.kevoree.kubi.driver.zwave</artifactId>
13+
<name>Kubi :: Driver :: Z-Wave</name>
14+
15+
<dependencies>
16+
<dependency>
17+
<groupId>org.kevoree.kubi</groupId>
18+
<artifactId>org.kevoree.kubi.framework</artifactId>
19+
<version>${project.version}</version>
20+
</dependency>
21+
<dependency>
22+
<groupId>org.kevoree.kubi</groupId>
23+
<artifactId>org.kevoree.kubi.model</artifactId>
24+
<version>${project.version}</version>
25+
</dependency>
26+
<dependency>
27+
<groupId>org.kevoree.tools</groupId>
28+
<artifactId>org.kevoree.tools.javase.framework</artifactId>
29+
<version>${kevoree.version}</version>
30+
</dependency>
31+
<dependency>
32+
<groupId>org.kevoree.tools</groupId>
33+
<artifactId>org.kevoree.tools.annotation.api</artifactId>
34+
<version>${kevoree.version}</version>
35+
</dependency>
36+
<dependency>
37+
<groupId>org.kevoree.corelibrary.javase</groupId>
38+
<artifactId>org.kevoree.library.javase.javaseNode</artifactId>
39+
<version>2.0.6-SNAPSHOT</version>
40+
</dependency>
41+
<dependency>
42+
<groupId>lu.snt.helios.extra.zwave</groupId>
43+
<artifactId>lu.snt.helios.extra.zwave.driver</artifactId>
44+
<version>1.0.0-SNAPSHOT</version>
45+
</dependency>
46+
<dependency>
47+
<groupId>org.json</groupId>
48+
<artifactId>json</artifactId>
49+
<version>20090211</version>
50+
</dependency>
51+
</dependencies>
52+
53+
54+
<build>
55+
<plugins>
56+
<plugin>
57+
<groupId>org.kevoree.tools</groupId>
58+
<artifactId>org.kevoree.tools.annotation.mavenplugin</artifactId>
59+
<version>${kevoree.version}</version>
60+
<extensions>true</extensions>
61+
<configuration>
62+
<libraries>
63+
<library>JavaSE</library>
64+
</libraries>
65+
</configuration>
66+
<executions>
67+
<execution>
68+
<goals>
69+
<goal>generate</goal>
70+
</goals>
71+
</execution>
72+
</executions>
73+
</plugin>
74+
</plugins>
75+
</build>
76+
77+
78+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
package org.kevoree.kubi.driver.zwave.cmp;
2+
3+
import org.json.JSONException;
4+
import org.json.JSONObject;
5+
import org.kevoree.annotation.*;
6+
import org.kevoree.framework.AbstractComponentType;
7+
import org.kevoree.framework.MessagePort;
8+
import org.kevoree.kubi.driver.zwave.core.ZWaveConnector;
9+
import org.kevoree.kubi.driver.zwave.core.ZWaveListener;
10+
import org.kevoree.log.Log;
11+
12+
/**
13+
* Created with IntelliJ IDEA.
14+
* User: gregory.nain
15+
* Date: 14/11/2013
16+
* Time: 11:38
17+
*/
18+
19+
@Provides({
20+
@ProvidedPort(name = "toDevices", type = PortType.MESSAGE)
21+
})
22+
23+
@Requires({
24+
@RequiredPort(name = "fromDevices", type = PortType.MESSAGE, optional = true)
25+
})
26+
27+
@DictionaryType({
28+
@DictionaryAttribute(name="logLevel", vals = {"DEBUG", "INFO", "ERROR", "TRACE", "OFF", "WARN"}, optional = true, defaultValue = "WARN")
29+
})
30+
31+
32+
@ComponentType
33+
public class ZWaveDriver extends AbstractComponentType implements ZWaveListener{
34+
35+
private Log localLog;
36+
private ZWaveConnector connector;
37+
38+
public ZWaveDriver() {
39+
localLog = Log.getLog("ZWaveDriver");
40+
connector = new ZWaveConnector();
41+
connector.addZwaveListener(this);
42+
}
43+
44+
@Start
45+
public void startComponent() {
46+
setLogLevel();
47+
connector.start();
48+
}
49+
50+
@Stop
51+
public void stopComponent() {
52+
connector.stop();
53+
}
54+
55+
@Update
56+
public void updateComponent() {
57+
setLogLevel();
58+
}
59+
60+
@Port(name="toDevices")
61+
public void toDevices(Object msg) {
62+
if(msg instanceof JSONObject) {
63+
connector.sendToNetwork((JSONObject)msg);
64+
} else if(msg instanceof String) {
65+
try {
66+
connector.sendToNetwork(new JSONObject((String)msg));
67+
} catch (JSONException e) {
68+
Log.warn("Could not JSON parse the string received.", e); //To change body of catch statement use File | Settings | File Templates.
69+
}
70+
} else {
71+
Log.error("Received a message of a type I could not deal with:" + msg.getClass());
72+
}
73+
}
74+
75+
public void messageReceived(JSONObject msg) {
76+
getPortByName("fromDevices", MessagePort.class).process(msg);
77+
}
78+
79+
private void setLogLevel() {
80+
String logLevelVal = (String)getDictionary().get("logLevel");
81+
if ("DEBUG".equals(logLevelVal)) {
82+
Log.DEBUG();
83+
} else if ("WARN".equals(logLevelVal)) {
84+
Log.WARN();
85+
} else if ("INFO".equals(logLevelVal)) {
86+
Log.INFO();
87+
} else if ("ERROR".equals(logLevelVal)) {
88+
Log.ERROR();
89+
} else if ("TRACE".equals(logLevelVal)) {
90+
Log.TRACE();
91+
} else {
92+
Log.NONE();
93+
}
94+
}
95+
96+
97+
98+
}

0 commit comments

Comments
 (0)