diff --git a/pack/lite/configuration/sand-demo/components.ini b/pack/lite/configuration/sand-demo/components.ini
new file mode 100644
index 0000000..d9ac986
--- /dev/null
+++ b/pack/lite/configuration/sand-demo/components.ini
@@ -0,0 +1,16 @@
+[thing.socket.message.receiver]
+port=6222
+connection.timeout=600
+
+[standard.client.message.processor]
+tls.required=false
+sasl.supported.mechanisms=DIGEST-MD5, CRAM-MD5
+
+[ibr.supported.client.message.processor]
+tls.required=false
+
+[default.protocol.processing.processor]
+relay.unknown.namespace.iq=false
+
+[session.manager]
+session.callback.check.interval=10000
diff --git a/pack/lite/configuration/sand-demo/iot-component-binding-lite.ini b/pack/lite/configuration/sand-demo/iot-component-binding-lite.ini
new file mode 100644
index 0000000..f1f8212
--- /dev/null
+++ b/pack/lite/configuration/sand-demo/iot-component-binding-lite.ini
@@ -0,0 +1,45 @@
+stream.service$client.message.receivers=socket.message.receiver,thing.socket.message.receiver
+
+socket.message.receiver$session.manager=lite.session.manager
+socket.message.receiver$message.processor=standard.client.message.processor
+socket.message.receiver$router=lite.router
+socket.message.receiver$local.node.id.provider=lite.local.node.id.provider
+
+standard.client.message.processor$session.manager=lite.session.manager
+standard.client.message.processor$message.channel=lite.stream.2.parsing.message.channel
+standard.client.message.processor$event.message.channel=lite.any.2.event.message.channel
+standard.client.message.processor$router=lite.router
+
+thing.socket.message.receiver$session.manager=lite.session.manager
+thing.socket.message.receiver$message.processor=ibtr.supported.client.message.processor
+thing.socket.message.receiver$router=lite.router
+thing.socket.message.receiver$local.node.id.provider=lite.local.node.id.provider
+
+ibtr.supported.client.message.processor$session.manager=lite.session.manager
+ibtr.supported.client.message.processor$message.channel=lite.stream.2.parsing.message.channel
+ibtr.supported.client.message.processor$event.message.channel=lite.any.2.event.message.channel
+ibtr.supported.client.message.processor$router=lite.router
+
+parsing.service$parsing.message.receiver=lite.stream.2.parsing.message.receiver
+lite.stream.2.parsing.message.receiver$session.manager=lite.session.manager
+lite.stream.2.parsing.message.receiver$message.channel=lite.parsing.2.processing.message.channel
+lite.stream.2.parsing.message.receiver$message.processor=default.message.parsing.processor
+
+processing.service$processing.message.receiver=lite.parsing.2.processing.message.receiver
+lite.parsing.2.processing.message.receiver$session.manager=lite.session.manager
+lite.parsing.2.processing.message.receiver$message.channel=lite.any.2.routing.message.channel
+lite.parsing.2.processing.message.receiver$message.processor=default.protocol.processing.processor
+
+event.service$event.message.receiver=lite.any.2.event.message.receiver
+lite.any.2.event.message.receiver$message.processor=default.event.processor
+lite.any.2.event.message.receiver$message.channel=lite.any.2.routing.message.channel
+lite.any.2.event.message.receiver$session.manager=lite.session.manager
+
+routing.service$routing.message.receiver=lite.any.2.routing.message.receiver
+lite.any.2.routing.message.receiver$session.manager=lite.session.manager
+lite.any.2.routing.message.receiver$message.channel=lite.routing.2.stream.message.channel
+lite.any.2.routing.message.receiver$message.processor=default.routing.processor
+
+stream.service$delivery.message.receiver=lite.routing.2.stream.message.receiver
+lite.routing.2.stream.message.receiver$session.manager=lite.session.manager
+lite.routing.2.stream.message.receiver$message.processor=default.delivery.message.processor
diff --git a/pack/lite/configuration/sand-demo/plugins.ini b/pack/lite/configuration/sand-demo/plugins.ini
new file mode 100644
index 0000000..0583ac4
--- /dev/null
+++ b/pack/lite/configuration/sand-demo/plugins.ini
@@ -0,0 +1,8 @@
+#[sand-server-things]
+#thing.authorization.validity.time=300
+
+#[sand-server-concentrator]
+#node.confirmation.validity.time=300
+
+#[sand-server-location]
+#enabled=true
\ No newline at end of file
diff --git a/pack/lite/configuration/sand-demo/server.ini b/pack/lite/configuration/sand-demo/server.ini
new file mode 100644
index 0000000..923ed6f
--- /dev/null
+++ b/pack/lite/configuration/sand-demo/server.ini
@@ -0,0 +1,3 @@
+#disabled.services=stream.service
+component.binding.profile=${config.dir}/iot-component-binding-lite.ini
+domain.name=localhost
diff --git a/pack/lite/iot-pom.xml b/pack/lite/iot-pom.xml
index 0e8ea9a..9dfb073 100644
--- a/pack/lite/iot-pom.xml
+++ b/pack/lite/iot-pom.xml
@@ -79,12 +79,6 @@
com.thefirstlineofcode.sand.server.lite
sand-server-lite-friends
-
-
-
- com.thefirstlineofcode.sand.demo
- sand-demo-server-lite
-
diff --git a/pack/lite/sand-demo-pom.xml b/pack/lite/sand-demo-pom.xml
new file mode 100644
index 0000000..0e8ea9a
--- /dev/null
+++ b/pack/lite/sand-demo-pom.xml
@@ -0,0 +1,108 @@
+
+
+
+ 4.0.0
+
+
+ com.thefirstlineofcode.granite
+ granite-pack
+ 1.0.5-RELEASE
+ ../pom.xml
+
+
+ com.thefirstlineofcode.granite.pack.lite
+ granite-pack-lite-iot
+
+
+
+
+ com.thefirstlineofcode.sand.server
+ sand-server-stream
+
+
+
+
+ com.thefirstlineofcode.granite.lite
+ granite-lite-dba
+
+
+ com.thefirstlineofcode.granite.lite
+ granite-lite-session
+
+
+ com.thefirstlineofcode.granite.lite
+ granite-lite-pipeline
+
+
+ com.thefirstlineofcode.granite.lite
+ granite-lite-auth
+
+
+ com.thefirstlineofcode.granite.lite
+ granite-lite-im
+
+
+
+
+ com.thefirstlineofcode.sand.server
+ sand-server-location
+
+
+ com.thefirstlineofcode.sand.server
+ sand-server-actuator
+
+
+ com.thefirstlineofcode.sand.server
+ sand-server-console
+
+
+ com.thefirstlineofcode.sand.server
+ sand-server-operator
+
+
+
+
+ com.thefirstlineofcode.sand.server.lite
+ sand-server-lite-things
+
+
+ com.thefirstlineofcode.sand.server.lite
+ sand-server-lite-ibtr
+
+
+ com.thefirstlineofcode.sand.server.lite
+ sand-server-lite-concentrator
+
+
+ com.thefirstlineofcode.sand.server.lite
+ sand-server-lite-friends
+
+
+
+
+ com.thefirstlineofcode.sand.demo
+ sand-demo-server-lite
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.4
+
+
+
+ com.thefirstlineofcode.granite.lite.pack.Main
+
+
+
+
+
+
+
+
+
diff --git a/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Main.java b/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Main.java
index d7df9ff..763cae4 100644
--- a/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Main.java
+++ b/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Main.java
@@ -97,8 +97,10 @@ private Options parseOptions(String[] args) {
options.setProtocol(Options.Protocol.STANDARD);
} else if ("iot".equals(args[i])) {
options.setProtocol(Options.Protocol.IOT);
+ } else if ("sand-demo".equals(args[i])) {
+ options.setProtocol(Protocol.SAND_DEMO);
} else {
- throw new IllegalArgumentException(String.format("Illegal protocol: %s. Only 'mini', 'standard' and 'iot' are supported.", args[i]));
+ throw new IllegalArgumentException(String.format("Illegal protocol: %s. Only 'mini', 'standard', 'iot' and 'sand-demo' are supported.", args[i]));
}
i++;
} else if ("-webcamMode".equals(args[i])) {
@@ -146,7 +148,7 @@ private Options parseOptions(String[] args) {
}
if (options.getWebcamMode() == null) {
- if (options.getProtocol() == Protocol.IOT) {
+ if (options.getProtocol() == Protocol.SAND_DEMO) {
options.setWebcamMode(WebcamMode.P2P);
} else {
options.setWebcamMode(WebcamMode.NONE);
@@ -177,7 +179,7 @@ private void printUsage() {
System.out.println("-cleanUpdate Clean and update specified modules.");
System.out.println("-cleanCache Clean the packing cache.");
System.out.println("-offline Run in offline mode.");
- System.out.println("-protocol Specify the protocol. Optional protocols are 'mini', 'standard' or 'iot'. Default is 'standard'.");
+ System.out.println("-protocol Specify the protocol. Optional protocols are 'mini', 'standard', 'iot' or 'sand-demo'. Default is 'standard'.");
System.out.println("-webcamMode Specify that which webcam plugin needs to be deployed. Optional plugins are 'none', 'p2p', 'kurento'. Default is 'none'.");
}
}
diff --git a/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Options.java b/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Options.java
index 734334d..feed9db 100644
--- a/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Options.java
+++ b/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Options.java
@@ -26,7 +26,8 @@ public enum WebcamMode {
public enum Protocol {
MINI,
STANDARD,
- IOT
+ IOT,
+ SAND_DEMO
}
public Options() {
diff --git a/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Packer.java b/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Packer.java
index bc474a1..da0c761 100644
--- a/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Packer.java
+++ b/pack/lite/src/main/java/com/thefirstlineofcode/granite/pack/lite/Packer.java
@@ -21,7 +21,8 @@
public class Packer {
private static final String CONFIGURATION_DIR = "configuration";
private static final String SAND_PROJECT_PREFIX = "sand-";
-
+ private static final String SAND_DEMO_PROJECT_PREFIX = "sand-demo-";
+
private Options options;
private List systemLibraries;
@@ -93,8 +94,9 @@ private void copyBasicServerToZip(File basicServerZip, ZipOutputStream zos) {
if (isSystemLibrary(entryName)) {
int lastSlash = entryName.lastIndexOf('/');
String libraryName = entryName.substring(lastSlash + 1);
- if (libraryName.startsWith(SAND_PROJECT_PREFIX) &&
- options.getProtocol() != Protocol.IOT)
+ if (libraryName.startsWith(SAND_PROJECT_PREFIX) && (options.getProtocol() != Protocol.IOT || options.getProtocol() != Protocol.SAND_DEMO))
+ continue;
+ if (libraryName.startsWith(SAND_DEMO_PROJECT_PREFIX) && options.getProtocol() != Protocol.SAND_DEMO)
continue;
systemLibraries.add(libraryName);
}
@@ -211,8 +213,10 @@ private void copyDependencies() {
PackUtils.runMvn(new File(options.getProjectDirPath()), options.isOffline(), "-fmini-pom.xml", "dependency:copy-dependencies");
} else if (options.getProtocol() == Options.Protocol.STANDARD) {
PackUtils.runMvn(new File(options.getProjectDirPath()), options.isOffline(), "-fstandard-pom.xml", "dependency:copy-dependencies");
- } else {
+ } else if (options.getProtocol() == Protocol.IOT) {
PackUtils.runMvn(new File(options.getProjectDirPath()), options.isOffline(), "-fiot-pom.xml", "dependency:copy-dependencies");
+ } else {
+ PackUtils.runMvn(new File(options.getProjectDirPath()), options.isOffline(), "-fsand-demo-pom.xml", "dependency:copy-dependencies");
if (options.getWebcamMode() == WebcamMode.P2P) {
PackUtils.runMvn(new File(options.getProjectDirPath()), options.isOffline(), "-fp2p-webcam-pom.xml", "dependency:copy-dependencies");
@@ -239,8 +243,10 @@ private void writeGraniteConfigFilesToZip(String targetDirPath, ZipOutputStream
configurationFilesDir = new File(configurationDir, "standard");
} else if (options.getProtocol() == Options.Protocol.IOT) {
configurationFilesDir = new File(configurationDir, "iot");
+ } else if (options.getProtocol() == Protocol.SAND_DEMO) {
+ configurationFilesDir = new File(configurationDir, "sand-demo");
} else {
- throw new IllegalArgumentException("Only support 'mini', 'standard' and 'iot' protocols now.");
+ throw new IllegalArgumentException("Only support 'mini', 'standard', 'iot' and 'sand-demo' protocols now.");
}
for (File configurationFile : configurationFilesDir.listFiles()) {