summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ScriptFilter.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ScriptFilter.java')
-rw-r--r--sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ScriptFilter.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ScriptFilter.java b/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ScriptFilter.java
new file mode 100644
index 0000000000..8964db68cc
--- /dev/null
+++ b/sca-java-2.x/contrib/modules/binding-comet-runtime/src/main/java/org/apache/tuscany/sca/binding/comet/runtime/ScriptFilter.java
@@ -0,0 +1,20 @@
+package org.apache.tuscany.sca.binding.comet.runtime;
+
+import org.atmosphere.cpr.BroadcastFilter;
+
+public class ScriptFilter implements BroadcastFilter {
+
+ private static final String BEGIN_SCRIPT_TAG = "<script type='text/javascript'>\n";
+ private static final String END_SCRIPT_TAG = "</script>\n";
+ // TODO: add dynamic function configuration
+ private static final String DEFAULT_FUNCTION = "window.parent.update";
+
+ public BroadcastAction filter(Object o) {
+ if (o instanceof String) {
+ String message = (String)o;
+ return new BroadcastAction(BEGIN_SCRIPT_TAG + DEFAULT_FUNCTION + "('" + message + "');\n" + END_SCRIPT_TAG);
+ } else {
+ return new BroadcastAction(o);
+ }
+ }
+}